On Thu, Apr 20, 2023 at 09:37:24PM +0800, Zeng Guang wrote: >Host kernel may clear LASS capability in boot_cpu_data.x86_capability >besides explicitly using clearcpuid parameter. That will cause guest >not being able to manage LASS independently. So set KVM LASS directly >based on hardware capability to eliminate the dependency. ... >+ /* Set LASS based on hardware capability */ >+ if (cpuid_count_eax(7, 1) & F(LASS)) >+ kvm_cpu_cap_set(X86_FEATURE_LASS); >+ What if LASS is cleared in boot_cpu_data because not all CPUs support LASS? In arch/x86/kernel/cpu/common.c, identify_cpu() clears features which are not supported by all CPUs: /* * On SMP, boot_cpu_data holds the common feature set between * all CPUs; so make sure that we indicate which features are * common between the CPUs. The first time this routine gets * executed, c == &boot_cpu_data. */ if (c != &boot_cpu_data) { /* AND the already accumulated flags with these */ for (i = 0; i < NCAPINTS; i++) boot_cpu_data.x86_capability[i] &= c->x86_capability[i]; LA57 seems to have the same issue. We may need to add some checks for LA57 in KVM's cpu hotplug callback. > kvm_cpu_cap_init_kvm_defined(CPUID_7_1_EDX, > F(AVX_VNNI_INT8) | F(AVX_NE_CONVERT) | F(PREFETCHITI) > ); >-- >2.27.0 >