On Fri, Sep 7, 2012 at 5:39 PM, Peter Zijlstra <[email protected]> wrote: > On Fri, 2012-09-07 at 16:29 +0200, Stephane Eranian wrote: >> @@ -148,6 +148,15 @@ static LIST_HEAD(pmus); >> static DEFINE_MUTEX(pmus_lock); >> static struct srcu_struct pmus_srcu; >> >> +struct perf_cpu_hrtimer { >> + struct hrtimer hrtimer; >> + int active; >> +}; >> + >> +static DEFINE_PER_CPU(struct list_head, rotation_list); >> + >> +static DEFINE_PER_CPU(struct perf_cpu_hrtimer, perf_cpu_hrtimer); > > > How about sticking the hrtimer in perf_cpu_context so you can have a > different rotation interval per PMU ? > I think having different intervals would be a good thing, especially for uncore. But now, I am wondering how this could work without too much overhead. Looks like you're suggesting arming multiple hrtimers if multiple PMU are overcommitted. Is that right? As opposed to having a PMU multiplier off of a single per-cpu hrtimer.
> Sorta like e9d2b064149ff7ef4acbc65a1b9374ac8b218d3e removed. Stopping > the timer when the PMU isn't over committed should solve the NOHZ > problem I think. Yeah, my patch does solve this. That's what I show in my example in the intro msg. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/

