Re: [RFC][PATCH 13/19] perf: Per cpu-context rotation timer

From: Thomas Gleixner
Date: Wed Sep 08 2010 - 09:51:44 EST


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