Question about resetting a sampling counter in kernel

From: heechul Yun
Date: Sun Feb 12 2012 - 13:38:03 EST


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.

Thanks.
--
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/