[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CA+55aFxWXOCo2DqjB_W6fM7Y6tX01mT1QT9rdoh7_X3-BH8eTQ@mail.gmail.com>
Date: Wed, 17 Jan 2018 18:56:01 -0800
From: Linus Torvalds <torvalds@...ux-foundation.org>
To: Dave Young <dyoung@...hat.com>
Cc: Yu Chen <yu.c.chen@...el.com>,
Thomas Gleixner <tglx@...utronix.de>,
Juergen Gross <jgross@...e.com>,
Tony Luck <tony.luck@...el.com>,
Boris Ostrovsky <boris.ostrovsky@...cle.com>,
Borislav Petkov <bp@...en8.de>,
Rui Zhang <rui.zhang@...el.com>,
Arjan van de Ven <arjan@...ux.intel.com>,
Dan Williams <dan.j.williams@...el.com>,
Ingo Molnar <mingo@...nel.org>,
Kexec Mailing List <kexec@...ts.infradead.org>,
Linux Kernel Mailing List <linux-kernel@...r.kernel.org>,
ebiederm@...hat.com, Tom Lendacky <thomas.lendacky@....com>,
Baoquan He <bhe@...hat.com>
Subject: Re: kexec reboot fails with extra wbinvd introduced for AME SME
On Wed, Jan 17, 2018 at 6:47 PM, Dave Young <dyoung@...hat.com> wrote:
> Did several quick tests, probably need more tests, but till now the
> results are:
>
> void stop_this_cpu(void *dummy)
> {
> =====> add wbinvd here: kexec works
> local_irq_disable();
> =====> add wbinvd here: kexec works
> /*
> * Remove this CPU:
> */
> set_cpu_online(smp_processor_id(), false);
> =====> add wbinvd here: kexec does not work
Funky.
> So it seems that it will not work after cpu offined..
Well, that set_cpu_online() call really just clears a bit in our
'__cpu_online_mask' CPU mask. It doesn't really do anything to the
*hardware*.
But I do wonder if the wbinvd causes an SMI or something on your
system. I _think_ wbinvd causes some external pin to be wiggled just
to tell possible external cache hardware to flush too, and on a system
level that could be tied to some random thing.
And then if we get an SMI/NMI when we've marked the system offline,
maybe we do something odd.
Very odd. But maybe this makes somebody go "Duh, that's because of xyz.."
Linus
Powered by blists - more mailing lists