Messages in this thread | | | Subject | Re: [RFC][PATCH 13/19] perf: Per cpu-context rotation timer | From | Peter Zijlstra <> | Date | Tue, 07 Sep 2010 19:07:27 +0200 |
| |
On Tue, 2010-09-07 at 18:46 +0200, Peter Zijlstra wrote:
> @@ -5904,6 +5930,9 @@ static void __init perf_event_init_all_c > > cpuctx = &per_cpu(perf_cpu_context, cpu); > __perf_event_init_context(&cpuctx->ctx, NULL); > + cpuctx->timer_interval = TICK_NSEC; > + hrtimer_init(&cpuctx->timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL); > + cpuctx->timer.function = perf_event_context_tick; > }
> +static void perf_pmu_rotate_start(struct pmu *pmu) > +{ > + struct perf_cpu_context *cpuctx = &__get_cpu_var(perf_cpu_context); > + > + if (hrtimer_active(&cpuctx->timer)) > + return; > + > + __hrtimer_start_range_ns(&cpuctx->timer, > + ns_to_ktime(cpuctx->timer_interval), 0, > + HRTIMER_MODE_REL, 0); > }
This probably wants a fuzz factor that lets it fold into the tick we already have. Thomas what's the easiest way to do that, give it a soft limit of 1ns and hardlimit of TICK_NSEC?
| |