[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1505923.WBzzAyg8Mf@vostro.rjw.lan>
Date: Wed, 18 Feb 2015 07:16:58 +0100
From: "Rafael J. Wysocki" <rjw@...ysocki.net>
To: Peter Zijlstra <peterz@...radead.org>
Cc: linux-kernel@...r.kernel.org, mingo@...nel.org, tglx@...utronix.de,
Len Brown <lenb@...nel.org>, linux-acpi@...r.kernel.org
Subject: Re: [PATCH 01/35] ACPI/acpi_pad: Remove the local apic nonsense
On Monday, February 16, 2015 07:54:12 PM Rafael J. Wysocki wrote:
> On Monday, February 16, 2015 01:14:36 PM Peter Zijlstra wrote:
> > From: Thomas Gleixner <tglx@...utronix.de>
> >
> > While looking through the (ab)use of the clockevents_notify() function
> > I stumbled over the following gem in the acpi_pad code:
> >
> > if (lapic_detected_unstable && !lapic_marked_unstable) {
> > /* LAPIC could halt in idle, so notify users */
> > for_each_online_cpu(i)
> > clockevents_notify(CLOCK_EVT_NOTIFY_BROADCAST_ON, &i);
> > lapic_marked_unstable = 1;
> > }
> >
> > This code calls on the cpu which detects the lapic unstable condition
> > first clockevents_notify() to tell the core code that the broadcast
> > should be enabled on all online cpus. Brilliant stuff that as it
> > notifies the core code a num_online_cpus() times that the broadcast
> > should be enabled on the current cpu.
> >
> > This probably has never been noticed because that code got never
> > tested with NOHZ=n and HIGHRES_TIMER=n or it just worked by chance
> > because one of the other mechanisms told the core in the right way
> > that the local apic timer is wreckaged.
> >
> > Sigh, this is:
> >
> > - The 4th incarnation of idle drivers which has their own mechanism
> > to detect and deal with X86_FEATURE_ARAT.
> >
> > - The 2nd incarnation of fake idle mechanisms with a different set of
> > brainmelting bugs.
> >
> > - Has been merged against an explicit NAK of the scheduler
> > maintainer with the promise to improve it over time.
> >
> > - Another example of featuritis driven trainwreck engineering.
> >
> > - Another pointless waste of my time.
> >
> > Fix this nonsense by removing that lapic detection and notification
> > logic and simply call into the clockevents code unconditonally. The
> > ARAT feature is marked in the lapic clockevent already so the core
> > code will just ignore the requests and return.
> >
> > Signed-off-by: Thomas Gleixner <tglx@...utronix.de>
> > Cc: "Rafael J. Wysocki" <rjw@...ysocki.net>
>
> Acked-by: Rafael J. Wysocki <rafael.j.wysocki@...el.com>
Or I can apply it right away if you want me to.
Rafael
--
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