Messages in this thread | | | Date | Wed, 8 Sep 2010 15:50:55 +0200 (CEST) | From | Thomas Gleixner <> | Subject | Re: [RFC][PATCH 13/19] perf: Per cpu-context rotation timer |
| |
On Tue, 7 Sep 2010, Peter Zijlstra wrote:
> On Tue, 2010-09-07 at 19:33 +0200, Thomas Gleixner wrote: > > On Tue, 7 Sep 2010, Peter Zijlstra wrote: > > > > > 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? > > > > Hmm, why don't you hang it off the tick right away ? > > Because some people (Corey) want to be able to have different rotation > periods per pmu driver, so a timer per context was the easy way out.
Makes sense. If you want it fully aligned with the tick, then you just might get the real tick time from the tick code and make it proper aligned.
Thanks,
tglx
| |