Messages in this thread | | | Date | Thu, 9 Apr 2015 11:56:10 +0200 (CEST) | From | Thomas Gleixner <> | Subject | Re: [PATCH] hrtimer: Replace cpu_base->active_bases with a direct check of the active list |
| |
On Thu, 9 Apr 2015, Peter Zijlstra wrote: > 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.
Indeed.
| |