public inbox for kvm@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2] KVM: x86: Advertise SUCCOR and OVERFLOW_RECOV cpuid bits
@ 2024-07-31 14:36 John Allen
  2024-08-15 15:16 ` Sean Christopherson
  0 siblings, 1 reply; 2+ messages in thread
From: John Allen @ 2024-07-31 14:36 UTC (permalink / raw)
  To: pbonzini, kvm, seanjc
  Cc: thomas.lendacky, bp, mlevitsk, linux-kernel, x86, yazen.ghannam,
	John Allen

Handling deferred, uncorrected MCEs on AMD guests is now possible with
additional support in qemu. Ensure that the SUCCOR and OVERFLOW_RECOV
bits are advertised to the guest in KVM.

Suggested-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: John Allen <john.allen@amd.com>
---
v2:
  - Add cpuid_entry_override for CPUID_8000_0007_EBX.
  - Handle masking bits in arch/x86/kvm/cpuid.c
---
 arch/x86/kvm/cpuid.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/arch/x86/kvm/cpuid.c b/arch/x86/kvm/cpuid.c
index 2617be544480..f8e1fd409cee 100644
--- a/arch/x86/kvm/cpuid.c
+++ b/arch/x86/kvm/cpuid.c
@@ -743,6 +743,11 @@ void kvm_set_cpu_caps(void)
 	if (!tdp_enabled && IS_ENABLED(CONFIG_X86_64))
 		kvm_cpu_cap_set(X86_FEATURE_GBPAGES);
 
+	kvm_cpu_cap_mask(CPUID_8000_0007_EBX,
+		F(OVERFLOW_RECOV) |
+		F(SUCCOR)
+	);
+
 	kvm_cpu_cap_init_kvm_defined(CPUID_8000_0007_EDX,
 		SF(CONSTANT_TSC)
 	);
@@ -1237,11 +1242,12 @@ static inline int __do_cpuid_func(struct kvm_cpuid_array *array, u32 function)
 		entry->edx &= ~GENMASK(17, 16);
 		break;
 	case 0x80000007: /* Advanced power management */
+		cpuid_entry_override(entry, CPUID_8000_0007_EBX);
 		cpuid_entry_override(entry, CPUID_8000_0007_EDX);
 
 		/* mask against host */
 		entry->edx &= boot_cpu_data.x86_power;
-		entry->eax = entry->ebx = entry->ecx = 0;
+		entry->eax = entry->ecx = 0;
 		break;
 	case 0x80000008: {
 		/*
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH v2] KVM: x86: Advertise SUCCOR and OVERFLOW_RECOV cpuid bits
  2024-07-31 14:36 [PATCH v2] KVM: x86: Advertise SUCCOR and OVERFLOW_RECOV cpuid bits John Allen
@ 2024-08-15 15:16 ` Sean Christopherson
  0 siblings, 0 replies; 2+ messages in thread
From: Sean Christopherson @ 2024-08-15 15:16 UTC (permalink / raw)
  To: John Allen
  Cc: pbonzini, kvm, thomas.lendacky, bp, mlevitsk, linux-kernel, x86,
	yazen.ghannam

s/cpuid/CPUID

On Wed, Jul 31, 2024, John Allen wrote:
> Handling deferred, uncorrected MCEs on AMD guests is now possible with
> additional support in qemu. Ensure that the SUCCOR and OVERFLOW_RECOV
> bits are advertised to the guest in KVM.

To host userspace, not the guest.

Please add a paragraph explaining (a) what these features do, (b) why
KVM doesn't need additional enabling, and (c) why KVM can't emulate these features
in software (though this can be omitted if it's quite obvious from (a)).

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2024-08-15 15:16 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-07-31 14:36 [PATCH v2] KVM: x86: Advertise SUCCOR and OVERFLOW_RECOV cpuid bits John Allen
2024-08-15 15:16 ` Sean Christopherson

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox