[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20170216122215.uvrckt25g2msfxhe@pd.tnic>
Date: Thu, 16 Feb 2017 13:22:16 +0100
From: Borislav Petkov <bp@...en8.de>
To: xlpang@...hat.com
Cc: x86@...nel.org, linux-kernel@...r.kernel.org,
kexec@...ts.infradead.org, Tony Luck <tony.luck@...el.com>,
Ingo Molnar <mingo@...hat.com>, Dave Young <dyoung@...hat.com>,
Prarit Bhargava <prarit@...hat.com>,
Junichi Nomura <j-nomura@...jp.nec.com>,
Kiyoshi Ueda <k-ueda@...jp.nec.com>,
Naoya Horiguchi <n-horiguchi@...jp.nec.com>,
Peter Zijlstra <peterz@...radead.org>,
Thomas Gleixner <tglx@...utronix.de>
Subject: Re: [PATCH] x86/mce: Keep quiet in case of broadcasted mce after
system panic
On Thu, Feb 16, 2017 at 07:52:09PM +0800, Xunlei Pang wrote:
> then mce will be broadcast to the other cpus which are still running
> in the first kernel(i.e. looping in crash_nmi_callback).
Simple: the crash code should really mark CPUs as not being online:
void do_machine_check(struct pt_regs *regs, long error_code)
...
/* If this CPU is offline, just bail out. */
if (cpu_is_offline(smp_processor_id())) {
u64 mcgstatus;
mcgstatus = mce_rdmsrl(MSR_IA32_MCG_STATUS);
if (mcgstatus & MCG_STATUS_RIPV) {
mce_wrmsrl(MSR_IA32_MCG_STATUS, 0);
return;
}
}
because looping in crash_nmi_callback() does not really denote them as
CPUs being online.
And just so that you don't disturb the machine too much during crashing,
you could simply clear them from the online masks, i.e., perhaps call
remove_cpu_from_maps() with the proper locking around it instead of
doing a full cpu_down().
The machine will be killed anyway after kdump is done writing out
memory.
--
Regards/Gruss,
Boris.
Good mailing practices for 400: avoid top-posting and trim the reply.
Powered by blists - more mailing lists