perf: some questions about perf software events

From: Franck Bui-Huu
Date: Wed Nov 24 2010 - 06:35:57 EST


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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/