KVM: pass through CPUID(0x80000006)
Return the host's L2 cache and TLB information for CPUID.0x80000006 instead of zeroing out the entry as part of KVM_GET_SUPPORTED_CPUID. This allows a userspace VMM to feed KVM_GET_SUPPORTED_CPUID's output directly into KVM_SET_CPUID2 (without breaking the guest). Signed-off-by: Eric Northup (Google) <digitaleric@gmail.com> Signed-off-by: Jim Mattson <jmattson@google.com> Signed-off-by: Jon Cargille <jcargill@google.com> Message-Id: <20200415012320.236065-1-jcargill@google.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
Родитель
24647e0a39
Коммит
43d05de2be
|
@ -728,6 +728,9 @@ static inline int __do_cpuid_func(struct kvm_cpuid_array *array, u32 function)
|
||||||
cpuid_entry_override(entry, CPUID_8000_0001_EDX);
|
cpuid_entry_override(entry, CPUID_8000_0001_EDX);
|
||||||
cpuid_entry_override(entry, CPUID_8000_0001_ECX);
|
cpuid_entry_override(entry, CPUID_8000_0001_ECX);
|
||||||
break;
|
break;
|
||||||
|
case 0x80000006:
|
||||||
|
/* L2 cache and TLB: pass through host info. */
|
||||||
|
break;
|
||||||
case 0x80000007: /* Advanced power management */
|
case 0x80000007: /* Advanced power management */
|
||||||
/* invariant TSC is CPUID.80000007H:EDX[8] */
|
/* invariant TSC is CPUID.80000007H:EDX[8] */
|
||||||
entry->edx &= (1 << 8);
|
entry->edx &= (1 << 8);
|
||||||
|
|
Загрузка…
Ссылка в новой задаче