Re: Question about resetting a sampling counter in kernel

From: Peter Zijlstra
Date: Wed Feb 15 2012 - 08:01:03 EST


On Sun, 2012-02-12 at 12:37 -0600, heechul Yun wrote:
> Hello,
>
> I have a question about controlling performance counter in kernel.
>
> I created a kernel counter which generates an interrupt at every
> 10000 cache-misses as shown below.
>
> struct perf_event_attr sched_perf_hw_attr = {
> .type = PERF_TYPE_HARDWARE,
> .config = PERF_COUNT_HW_CACHE_MISSES,
> .sample_period = 10000,
> .size = sizeof(struct perf_event_attr),
> .pinned = 1,
> .disbled = 1,
> }
>
> event = perf_event_create_kernel_counter(&sched_perf_hw_attr, cpu,
> NULL, event_overflow_callback, NULL);
>
> What I would like to do is to "reset" the counter before the
> overflow interrupt occurs (e.g, reset at 5000th event),
> and then to restart the sampling from 0.
>
> I found perf_event_enable() and perf_event_disable() only
> start/stop the counting but couln't figure out how to reset the
> sampling as I described above.
>
> I would be really thankful if you explain how I can efficiently reset the
> sampling counter.

Expose and use perf_event_reset().
--
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/