Messages in this thread | | | Date | Tue, 9 Nov 2021 10:07:35 +0100 | From | Borislav Petkov <> | Subject | Re: [PATCH] x86/mce: drop cpu_missing since we have more capable mce_missing_cpus |
| |
On Tue, Nov 09, 2021 at 04:31:23PM +0800, Zhaolong Zhang wrote: > If there is a non-recoverable mce as well, just let it print that > reason. No need to bring the timeout message indeed. Because since > the tolerant was set to a high level to ignore the timeout, we can > eventually ignore them.
Here's how I see it:
/* * Tolerant levels: * 0: always panic on uncorrected errors, log corrected errors * 1: panic or SIGBUS on uncorrected errors, log corrected errors * 2: SIGBUS or log uncorrected errors (if possible), log corr. errors * 3: never panic or SIGBUS, log all errors (for testing only) */
So on normal deployments, no one should fiddle with tolerant levels - so you'll be running at tolerance level 0 by default and all should print out. Same for level 1.
Levels 2 and 3 are, to me at least, purely for testing *only*. And, actually, that error message should be issued regardless of the tolerance level - only the panicking should be controlled by that. IOW, that code should do:
if ((s64)*t < SPINUNIT) { if (cpumask_and(&mce_missing_cpus, cpu_online_mask, &mce_missing_cpus)) pr_emerg("CPUs not responding to MCE broadcast (may include false positives): %*pbl\n", cpumask_pr_args(&mce_missing_cpus)); if (mca_cfg.tolerant <= 1) mce_panic(msg, NULL, NULL); return 1; }
because, regardless of tolerance level, saying that some cores didn't respond is important info.
You could do that as a separate patch, on top, if you feel like it.
> I am not sure whether it should be authored by you or suggested by > you.
Suggested is fine.
> Anyway, I will post a new patch exactly as you suggested. Please pick > it or ignore it as appropriate :)
Thx.
-- Regards/Gruss, Boris.
https://people.kernel.org/tglx/notes-about-netiquette
| |