[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20110906203338.GL7761@one.firstfloor.org>
Date: Tue, 6 Sep 2011 22:33:38 +0200
From: Andi Kleen <andi@...stfloor.org>
To: Thomas Gleixner <tglx@...utronix.de>
Cc: Andi Kleen <andi@...stfloor.org>, linux-kernel@...r.kernel.org,
Andi Kleen <ak@...ux.intel.com>
Subject: Re: [PATCH 1/3] clockevents: Use an atomic RCU notifier for clockevents
On Tue, Sep 06, 2011 at 09:23:55PM +0200, Thomas Gleixner wrote:
> On Mon, 29 Aug 2011, Andi Kleen wrote:
>
> > From: Andi Kleen <ak@...ux.intel.com>
> >
> > Use an atomic_notifier instead of a raw_notifier for the clockevents
> > notification.
> >
> > This avoids a global lock in the idle path, is a scalability
> > problem. With this patch we don't have a global lock anymore
> > at least on systems with an always running timer.
>
> And why is that code called on a system with an always running local
> apic timer at all? The broadcast horror is explicitely only for those
> systems with wreckaged hardware.
Because the notifier is before the check for always running local apic timer.
clockevents_notify ->
clockevents_do_notify ->
raw_spin_lock_irqsave(&clockevents_lock, flags);
clockevents_do_notify(reason, arg);
tick_notifier ->
tick_notify ->
tick_broadcast_on_off ->
tick_do_broadcast_on_off
/* check */
if (!dev || !(dev->features & CLOCK_EVT_FEAT_C3STOP))
goto out;
You also get bonus points for a incredible convoluted call chain,
about 50% of it being unnecessary and full of scalability problems.
-Andi
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists