linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v1 1/1] KVM: VMX: Add host MSR read/write helpers to consolidate preemption handling
@ 2025-06-26 17:16 Xin Li (Intel)
  2025-08-19 23:12 ` Sean Christopherson
  0 siblings, 1 reply; 2+ messages in thread
From: Xin Li (Intel) @ 2025-06-26 17:16 UTC (permalink / raw)
  To: linux-kernel, kvm
  Cc: pbonzini, seanjc, tglx, mingo, bp, dave.hansen, x86, hpa,
	chao.gao

From: Sean Christopherson <seanjc@google.com>

Add host MSR read/write helpers to consolidate preemption handling to
prepare for adding FRED RSP0 access functions without duplicating the
preemption handling code.

Signed-off-by: Sean Christopherson <seanjc@google.com>
Signed-off-by: Xin Li (Intel) <xin@zytor.com>
---
 arch/x86/kvm/vmx/vmx.c | 25 +++++++++++++++++++------
 1 file changed, 19 insertions(+), 6 deletions(-)

diff --git a/arch/x86/kvm/vmx/vmx.c b/arch/x86/kvm/vmx/vmx.c
index 4953846cb30d..df5355b08431 100644
--- a/arch/x86/kvm/vmx/vmx.c
+++ b/arch/x86/kvm/vmx/vmx.c
@@ -1399,22 +1399,35 @@ static void vmx_prepare_switch_to_host(struct vcpu_vmx *vmx)
 }
 
 #ifdef CONFIG_X86_64
-static u64 vmx_read_guest_kernel_gs_base(struct vcpu_vmx *vmx)
+static u64 vmx_read_guest_host_msr(struct vcpu_vmx *vmx, u32 msr, u64 *cache)
 {
 	preempt_disable();
 	if (vmx->vt.guest_state_loaded)
-		rdmsrq(MSR_KERNEL_GS_BASE, vmx->msr_guest_kernel_gs_base);
+		*cache = read_msr(msr);
 	preempt_enable();
-	return vmx->msr_guest_kernel_gs_base;
+	return *cache;
 }
 
-static void vmx_write_guest_kernel_gs_base(struct vcpu_vmx *vmx, u64 data)
+static void vmx_write_guest_host_msr(struct vcpu_vmx *vmx, u32 msr, u64 data,
+				     u64 *cache)
 {
 	preempt_disable();
 	if (vmx->vt.guest_state_loaded)
-		wrmsrq(MSR_KERNEL_GS_BASE, data);
+		wrmsrns(msr, data);
 	preempt_enable();
-	vmx->msr_guest_kernel_gs_base = data;
+	*cache = data;
+}
+
+static u64 vmx_read_guest_kernel_gs_base(struct vcpu_vmx *vmx)
+{
+	return vmx_read_guest_host_msr(vmx, MSR_KERNEL_GS_BASE,
+				       &vmx->msr_guest_kernel_gs_base);
+}
+
+static void vmx_write_guest_kernel_gs_base(struct vcpu_vmx *vmx, u64 data)
+{
+	vmx_write_guest_host_msr(vmx, MSR_KERNEL_GS_BASE, data,
+				 &vmx->msr_guest_kernel_gs_base);
 }
 #endif
 

base-commit: e4775f57ad51a5a7f1646ac058a3d00c8eec1e98
-- 
2.50.0


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

* Re: [PATCH v1 1/1] KVM: VMX: Add host MSR read/write helpers to consolidate preemption handling
  2025-06-26 17:16 [PATCH v1 1/1] KVM: VMX: Add host MSR read/write helpers to consolidate preemption handling Xin Li (Intel)
@ 2025-08-19 23:12 ` Sean Christopherson
  0 siblings, 0 replies; 2+ messages in thread
From: Sean Christopherson @ 2025-08-19 23:12 UTC (permalink / raw)
  To: Sean Christopherson, linux-kernel, kvm, Xin Li (Intel)
  Cc: pbonzini, tglx, mingo, bp, dave.hansen, x86, hpa, chao.gao

On Thu, 26 Jun 2025 10:16:01 -0700, Xin Li (Intel) wrote:
> Add host MSR read/write helpers to consolidate preemption handling to
> prepare for adding FRED RSP0 access functions without duplicating the
> preemption handling code.

Applied to kvm-x86 vmx, thanks!

[1/1] KVM: VMX: Add host MSR read/write helpers to consolidate preemption handling
      https://github.com/kvm-x86/linux/commit/65391feb042b

--
https://github.com/kvm-x86/linux/tree/next

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

end of thread, other threads:[~2025-08-19 23:18 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-06-26 17:16 [PATCH v1 1/1] KVM: VMX: Add host MSR read/write helpers to consolidate preemption handling Xin Li (Intel)
2025-08-19 23:12 ` Sean Christopherson

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).