Re: perf: some questions about perf software events

From: Peter Zijlstra
Date: Wed Nov 24 2010 - 06:41:36 EST


On Wed, 2010-11-24 at 12:35 +0100, Franck Bui-Huu wrote:
> 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.

All the freq bits are in the generic code, it re-computes the rate on
the timer-tick as well as on each event occurrence.

Freq driven sampling should work just fine with swevents.

> 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 ?

No, Francis already noticed that, I probably wrecked it when I added the
multi-pmu stuff, its on my todo list to look at (Francis also handed me
a little patchlet), but I keep getting distracted with other stuff :/
--
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/