Re: [PATCH] EDAC/mce_amd: Reduce unnecessary spew in dmesg if SMCA feature bit is not exposed

From: Yazen Ghannam
Date: Tue Jun 15 2021 - 11:09:01 EST


On Tue, Jun 15, 2021 at 11:16:49AM +0200, Borislav Petkov wrote:
> On Mon, Jun 14, 2021 at 10:25:36PM +0000, Luck, Tony wrote:
> > I expect all the Intel EDAC drivers that load based on CPU model have similar
> > issues. Maybe they aren't whining as loudly about not being able to find the
> > memory controller devices?
>
> Right.
>
> > Though perhaps this is an issue outside of EDAC and x86_match_cpu()
> > could do the HYPERVISOR check and return no match. The few callers
> > who want to believe the fictional CPU model number passed in by the
> > VMM would need to use some new variant of the call?
>
> Yeah, we could do
>
> X86_MATCH_VENDOR_FAM_MODEL_STEPPINGS_NOT_FEATURE
>
> notice the "NOT" and have a x86_cpu_id.not_feature which to match
> X86_FEATURE_HYPERVISOR. I'm not sure it is worth it, though, for a
> handful of drivers.
>
> The whole thing is a meh, why bother, but I got tired of this particular
> intent of people wanting to shut this error message up just because they
> should not load that driver in a VM in the first place.
>
> But what happens is they boot a guest with -cpu host and in that case
> that's a new CPU - family 0x19 - so it doesn't have a case 0x19 for the
> pr_warn_once() there.
>
> And instead of keep adding adding families there, I'd simply check
> X86_FEATURE_HYPERVISOR.
>
> Oh and that thing - mce_amd.c - doesn't use x86_match_cpu() so it has to
> be an explicit check on function entry.
>

How about adding the the SMCA feature to the amd64_cpuids[] table in
amd64_edac.c?

We can use X86_MATCH_VENDOR_FEATURE to match on AMD (and Hygon) systems
with SMCA. And we can remove the X86_MATCH_VENDOR_FAM entries for
families 17h-19h.

I'm assuming the issue is that amd64_edac_mod is autoloading due to the
family-based device table, and this will load edac_mce_amd as a
dependency.

Thanks,
Yazen