Re: [PATCH] hrtimer: Replace cpu_base->active_bases with a direct check of the active list

From: Peter Zijlstra
Date: Thu Apr 09 2015 - 05:32:13 EST


On Thu, Apr 09, 2015 at 11:18:52AM +0200, Thomas Gleixner wrote:
> On Thu, 9 Apr 2015, Peter Zijlstra wrote:
> > On Thu, Apr 09, 2015 at 09:20:39AM +0200, Ingo Molnar wrote:
> > > if at least one base is active (on my fairly standard system all cpus
> > > have at least one active hrtimer base all the time - and many cpus
> > > have two bases active), then we run hrtimer_get_softirq_time(), which
> > > dirties the cachelines of all 4 clock bases:
> > >
> > > base->clock_base[HRTIMER_BASE_REALTIME].softirq_time = xtim;
> > > base->clock_base[HRTIMER_BASE_MONOTONIC].softirq_time = mono;
> > > base->clock_base[HRTIMER_BASE_BOOTTIME].softirq_time = boot;
> > > base->clock_base[HRTIMER_BASE_TAI].softirq_time = tai;
> > >
> > > so in practice we not only touch every cacheline in every timer
> > > interrupt, but we _dirty_ them, even the inactive ones.
> > >
> >
> > Urgh we should really _really_ kill that entire softirq mess.
>
> That's the !highres part. We cannot kill that one unless we remove all
> support for machines which do not provide hardware for highres
> support.

Oops, sorry I mixed up the two. Doesn't take away from the fact that I'd
like to get rid of the highres softirq fallback path.
--
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/