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 ? Sorta like e9d2b064149ff7ef4acbc65a1b9374ac8b218d3e removed. Stopping the timer when the PMU isn't over committed should solve the NOHZ problem I think. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/