On 26.01.2026 18:53, Andrew Cooper wrote:
> --- a/xen/arch/x86/cpu/common.c
> +++ b/xen/arch/x86/cpu/common.c
> @@ -319,8 +319,6 @@ void __init early_cpu_init(bool verbose)
>       uint64_t val;
>       u32 eax, ebx, ecx, edx;
>  
> -     c->x86_cache_alignment = 32;
> -
>       /* Get vendor name */
>       cpuid(0x00000000, &c->cpuid_level, &ebx, &ecx, &edx);
>       *(u32 *)&c->x86_vendor_id[0] = ebx;
> @@ -352,6 +350,7 @@ void __init early_cpu_init(bool verbose)
>       if (edx & cpufeat_mask(X86_FEATURE_CLFLUSH)) {
>               unsigned int size = ((ebx >> 8) & 0xff) * 8;
>  
> +             c->x86_clflush_size = size;
>               c->x86_cache_alignment = size;

With this change, can't the writing of the field in generic_identify()
go away? CPU_DATA_INIT() in particular doesn't invalidate it. Perferably
with that dropped (unless of course there is a reason not to):
Reviewed-by: Jan Beulich <[email protected]>

Tangentially, "cpuid=no-clflush" didn't have any effect on any of this so
far, and also isn't going to have with the changes you make.

Jan

Reply via email to