Messages in this thread Patch in this message | | | From | Franck Bui-Huu <> | Subject | perf: some questions about perf software events | Date | Wed, 24 Nov 2010 12:35:36 +0100 |
| |
Hello Peter,
I've still a couple of questions after looking at the software events code, hope you don't mind.
For pure software events (ie excluding {task,cpu}-clock), does it make sense to set a sample frequency ? I would have done something like this:
diff --git a/kernel/perf_event.c b/kernel/perf_event.c index 31515200..df27fd8 100644 --- a/kernel/perf_event.c +++ b/kernel/perf_event.c @@ -4671,6 +4671,8 @@ static int perf_swevent_init(struct perf_event *event) if (event->attr.type != PERF_TYPE_SOFTWARE) return -ENOENT; + if (event->attr.freq) + return -EINVAL; switch (event_id) { case PERF_COUNT_SW_CPU_CLOCK:
That is for no 'contiguous' events, setting a sampling frequency doesn't really make sense since for example you could set a frequency to 1000 HZ for the software ALIGNMENT_FAULT event and never get any samplings or at least getting sampling but with a totally different rate. And the current code doesn't look to handle sample_freq anyway.
Also I'm currently not seeing any real differences between cpu-clock and task-clock events. They both seem to count the time elapsed when the task is running on a CPU. Am I wrong ?
Thanks -- Franck
| |