Re: [PATCH] x86/fpu: Warn only when CPU-provided sizes less than struct declaration

From: Suravee Suthikulpanit
Date: Fri Dec 06 2019 - 03:14:33 EST


Dave,

On 12/4/19 12:27 AM, Dave Hansen wrote:
On 12/3/19 1:01 AM, Suravee Suthikulpanit wrote:
The current XCHECK_SZ macro warns if the XFEATURE size reported
by CPUID does not match the size of kernel structure. However, depending
on the hardware implementation, CPUID can report the XSAVE state size
larger than the size of C structures defined for each of the XSAVE state
due to padding.

We have existing architecture for padding. See xfeature_is_aligned(),
for instance. Are you saying that there are implementations out there
that do padding which is not otherwise enumerated and that they do it
within the size of the enumerated stat
Yes, the implementation includes the padding size within the size of
the enumerated state. This results in the reported size larger than
the amount needed by the feature.

Such case should be safe and should not need to generate warning
message.

I've seen these error messages trip before, but only on pre-production
processors with goofy microcode. I'd be really suspicious that this is
just papering over a processor issue. Or, that perhaps the compacted
form works but the standard form is broken somehow.

I have verified with the HW folks and the have confirmed that this is
to be expected.

Thanks,
Suravee