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