On 18/07/2025 11:23 am, Andrew Cooper wrote:
> On 18/07/2025 11:19 am, Jan Beulich wrote:
>> On 18.07.2025 12:07, Andrew Cooper wrote:
>>> With the ability to match on steppings, introduce a new X86_MATCH_VFMS()
>>> helper to match a specific stepping, and use it to rework deadline_match[].
>>>
>>> Notably this removes the overloading of driver_data possibly being a 
>>> function
>>> pointer, and removes the latent bug where the target functions are missing
>>> ENDBR instructions owing to the lack of the cf_check attribute.
>>>
>>> No functional change.
>>>
>>> Signed-off-by: Andrew Cooper <andrew.coop...@citrix.com>
>> Reviewed-by: Jan Beulich <jbeul...@suse.com>
> Thanks.

Actually, this isn't as no-functional-change as I thought.

X86_FEATURE_TSC_DEADLINE has been swapped for X86_FEATURE_ANY in the table.

check_deadline_errata() is called unconditionally, without checking for
TSC_DEADLINE, yet the rows in the table are the CPUs for which an
erratum is known, so they all have the feature.

It does make a difference if e.g. one were to boot with
cpuid=no-tsc-deadline.  Previously we'd have exited early, while now
we'll emit the warning.

We could switch back to using TSC_DEADLINE (requiring a more complicated
X86_MATCH_*() wrapper), although a better option would be to predicate
the call to check_deadline_errata() with a feature check, because it's a
much more recent addition to AMD CPUs, and there's no point searching
the errata list on CPUs which lack the feature.

Thoughts?

~Andrew

Reply via email to