public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/7] KVM: SVM: Enable FRED support
@ 2026-01-29  6:36 Shivansh Dhiman
  2026-01-29  6:36 ` [PATCH 1/7] KVM: SVM: Initialize FRED VMCB fields Shivansh Dhiman
                   ` (8 more replies)
  0 siblings, 9 replies; 32+ messages in thread
From: Shivansh Dhiman @ 2026-01-29  6:36 UTC (permalink / raw)
  To: seanjc, pbonzini, linux-kernel, kvm
  Cc: tglx, mingo, bp, dave.hansen, x86, hpa, xin, nikunj.dadhania,
	santosh.shukla

This series adds SVM support for FRED (Flexible Return and Event Delivery)
virtualization in KVM.

FRED introduces simplified privilege level transitions to replace IDT-based
event delivery and IRET returns, providing lower latency event handling while
ensuring complete supervisor context on delivery and full user context on
return. FRED defines event delivery for both ring 3->0 and ring 0->0
transitions, and introduces ERETU for returning to ring 3 and ERETS for
remaining in ring 0.

AMD hardware extends the VMCB to support FRED virtualization with dedicated
save area fields for FRED MSRs (RSP0-3, SSP1-3, STKLVLS, CONFIG) and control
fields for event injection data (EXITINTDATA, EVENTINJDATA).

The implementation spans seven patches. The important changes are:

1) Extend VMCB structures with FRED fields mentioned above and disable MSR
   interception for FRED-enabled guests to avoid unnecessary VM exits.

2) Support for nested exceptions where we populate event injection data
   when delivering exceptions like page faults and debug traps. 

This series is based on top of FRED support for VMX patchset [1],
patches 1-17. The VMX patchset was rebased on top of v6.18.0 kernel.

[1] https://lore.kernel.org/kvm/20251026201911.505204-1-xin@zytor.com

Regards,
Shivansh
---
Neeraj Upadhyay (5):
  KVM: SVM: Initialize FRED VMCB fields
  KVM: SVM: Disable interception of FRED MSRs for FRED supported guests
  KVM: SVM: Save restore FRED_RSP0 for FRED supported guests
  KVM: SVM: Populate FRED event data on event injection
  KVM: SVM: Support FRED nested exception injection

Shivansh Dhiman (2):
  KVM: SVM: Dump FRED context in dump_vmcb()
  KVM: SVM: Enable save/restore of FRED MSRs

 arch/x86/include/asm/svm.h |  35 ++++++++++-
 arch/x86/kvm/svm/svm.c     | 116 +++++++++++++++++++++++++++++++++++--
 2 files changed, 144 insertions(+), 7 deletions(-)


base-commit: f76e83ecf6bce6d3793f828d92170b69e636f3c9
-- 
2.43.0


^ permalink raw reply	[flat|nested] 32+ messages in thread
* Re: Re: [PATCH 1/7] KVM: SVM: Initialize FRED VMCB fields
@ 2026-03-14 12:55 Christian Ludloff
  2026-03-27  6:47 ` Shivansh Dhiman
  0 siblings, 1 reply; 32+ messages in thread
From: Christian Ludloff @ 2026-03-14 12:55 UTC (permalink / raw)
  To: Shivansh Dhiman
  Cc: Sean Christopherson, pbonzini, linux-kernel, kvm, tglx, mingo, bp,
	dave.hansen, x86, hpa, xin, nikunj.dadhania, santosh.shukla,
	Andrew Cooper

>> Is this architecturally correct?  I.e. are all the FRED MSRs zeroed on INIT?
> Yes that's right, the FRED MSRs are zeroed on init.

Ahem... citation required, please.  :)

Because the FRED spec certainly claims otherwise:

  "The RESET state of each of the new MSRs is zero.
  INIT does not change the value of the FRED MSRs."

See SDM vol3 #325384-090 @ end of section 8.2.3.

Getting initialized by INIT tends to be outlier behavior
when it comes to MSRs – MPX, CET, EFER, FS/GS/
kGS... but afaik the rest all remain unchanged.

And yes... this will need clarification from Intel... given
that CET_PL0_SSP = FRED_SSP0_SL0... and it can
not be both, unchanged and set-to-zero...  8-)

--
C.

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

end of thread, other threads:[~2026-03-27  7:29 UTC | newest]

Thread overview: 32+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-01-29  6:36 [PATCH 0/7] KVM: SVM: Enable FRED support Shivansh Dhiman
2026-01-29  6:36 ` [PATCH 1/7] KVM: SVM: Initialize FRED VMCB fields Shivansh Dhiman
2026-03-07  1:58   ` Sean Christopherson
2026-03-09 17:46     ` Shivansh Dhiman
2026-03-09 18:57       ` Sean Christopherson
2026-03-11  4:18         ` Shivansh Dhiman
2026-03-27  6:41       ` Shivansh Dhiman
2026-01-29  6:36 ` [PATCH 2/7] KVM: SVM: Disable interception of FRED MSRs for FRED supported guests Shivansh Dhiman
2026-03-07  2:10   ` Sean Christopherson
2026-03-09 17:47     ` Shivansh Dhiman
2026-01-29  6:36 ` [PATCH 3/7] KVM: SVM: Save restore FRED_RSP0 " Shivansh Dhiman
2026-03-05 20:37   ` Shivansh Dhiman
2026-01-29  6:36 ` [PATCH 4/7] KVM: SVM: Populate FRED event data on event injection Shivansh Dhiman
2026-03-06 11:31   ` Paolo Bonzini
2026-03-09 19:47     ` Shivansh Dhiman
2026-01-29  6:36 ` [PATCH 5/7] KVM: SVM: Support FRED nested exception injection Shivansh Dhiman
2026-03-07  2:07   ` Sean Christopherson
2026-03-10 15:56     ` Shivansh Dhiman
2026-03-10 16:20       ` Sean Christopherson
2026-03-11  4:12         ` Shivansh Dhiman
2026-01-29  6:36 ` [PATCH 6/7] KVM: SVM: Dump FRED context in dump_vmcb() Shivansh Dhiman
2026-03-07  2:03   ` Sean Christopherson
2026-03-09 19:57     ` Shivansh Dhiman
2026-01-29  6:36 ` [PATCH 7/7] KVM: SVM: Enable save/restore of FRED MSRs Shivansh Dhiman
2026-03-07  2:14   ` Sean Christopherson
2026-03-09 18:20     ` Shivansh Dhiman
2026-02-06  9:22 ` [PATCH 0/7] KVM: SVM: Enable FRED support Shivansh Dhiman
2026-02-11  0:53   ` Andrew Cooper
2026-03-06  9:33     ` Shivansh Dhiman
2026-03-03 17:58 ` Shivansh Dhiman
  -- strict thread matches above, loose matches on Subject: below --
2026-03-14 12:55 Re: [PATCH 1/7] KVM: SVM: Initialize FRED VMCB fields Christian Ludloff
2026-03-27  6:47 ` Shivansh Dhiman
2026-03-27  7:29   ` Christian Ludloff

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