Re: Reserved bits and commit x86/sev-es: Set x86_virt_bits to the correct value straight away, instead of a two-phase approach

From: Jacob Xu
Date: Tue Jan 30 2024 - 16:34:07 EST


Adding some AMD folk to the thread here.

For AMD CPUs, initialization of c->x86_phys_bits occurs in
get_cpu_address_sizes() which is called from early_identify_cpu().

However, early_identify_cpu() will first call early_init_amd() which adjusts
x86_phys_bits based on the PhysAddrReduction CPUID field.

c->x86_phys_bits -= (cpuid_ebx(0x8000001f) >> 6) & 0x3f;

Thus, this adjustment is ignored.

Adding a new cpu_dev callback to calculate num reserved_cpu_bits makes sense to
me, hopefully the AMD folk can chime in here though.

Jacob