From a1702d9ab715c0190273484e2794d926ad8de87c Mon Sep 17 00:00:00 2001 From: David Venhoff Date: Wed, 20 Aug 2025 13:27:17 +0200 Subject: [PATCH] Enable ptwrite --- arch/x86/kvm/vmx/vmx_pt.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/arch/x86/kvm/vmx/vmx_pt.c b/arch/x86/kvm/vmx/vmx_pt.c index b21994cdb..e919718a4 100644 --- a/arch/x86/kvm/vmx/vmx_pt.c +++ b/arch/x86/kvm/vmx/vmx_pt.c @@ -71,6 +71,7 @@ #define MTC_EN BIT_ULL(9) #define TSC_EN BIT_ULL(10) #define DIS_RETC BIT_ULL(11) +#define PTWRITE_EN BIT_ULL(12) #define BRANCH_EN BIT_ULL(13) #define ADDR0_EN BIT_ULL(32) @@ -864,7 +865,7 @@ static inline void vmx_pt_setup_msrs(struct vcpu_vmx_pt *vmx_pt){ int i; //vmx_pt->ia32_rtit_ctrl_msr = 0ULL; - WRITE_ONCE(vmx_pt->ia32_rtit_ctrl_msr, (!TRACE_EN) | CTL_OS | CTL_USER | TO_PA | BRANCH_EN | DIS_RETC | PSB_MASK | CYC_EN | TSC_EN); + WRITE_ONCE(vmx_pt->ia32_rtit_ctrl_msr, (!TRACE_EN) | CTL_OS | CTL_USER | TO_PA | PTWRITE_EN | BRANCH_EN | DIS_RETC | PSB_MASK | CYC_EN | TSC_EN); //vmx_pt->ia32_rtit_ctrl_msr = (!TRACE_EN) | CTL_OS | CTL_USER | TO_PA | BRANCH_EN | DIS_RETC | PSB_MASK; for (i = 0; i < 4; i++){ @@ -1130,6 +1131,11 @@ static int vmx_pt_check_support(void){ return -EIO; } + if (!(b & BIT(4))) { + PRINT_ERROR("No PTWRITE support!"); + return -EIO; + } + cpuid_count(0x14, 1, &a, &b, &c, &d); //printk("Supported IP Filter Regions: %lx\n", a&0x7); supported_addrn = a&0x7;