[lkml]   [2015]   [Apr]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: [PATCH] hrtimer: Replace cpu_base->active_bases with a direct check of the active list
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.

All it needs it hrtimer_start*() returning -ENOTIME when it cannot queue
the timer.

Of course, all that needs it auditing all hrtimer_start*() callsites,
which is a lot of work.

 \ /
  Last update: 2015-04-09 11:41    [W:0.199 / U:0.248 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site