Enable ptwrite

This commit is contained in:
David Venhoff 2025-08-20 13:27:17 +02:00
parent 5cbb1d1a8e
commit a1702d9ab7

View File

@ -71,6 +71,7 @@
#define MTC_EN BIT_ULL(9) #define MTC_EN BIT_ULL(9)
#define TSC_EN BIT_ULL(10) #define TSC_EN BIT_ULL(10)
#define DIS_RETC BIT_ULL(11) #define DIS_RETC BIT_ULL(11)
#define PTWRITE_EN BIT_ULL(12)
#define BRANCH_EN BIT_ULL(13) #define BRANCH_EN BIT_ULL(13)
#define ADDR0_EN BIT_ULL(32) #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; int i;
//vmx_pt->ia32_rtit_ctrl_msr = 0ULL; //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; //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++){ for (i = 0; i < 4; i++){
@ -1130,6 +1131,11 @@ static int vmx_pt_check_support(void){
return -EIO; return -EIO;
} }
if (!(b & BIT(4))) {
PRINT_ERROR("No PTWRITE support!");
return -EIO;
}
cpuid_count(0x14, 1, &a, &b, &c, &d); cpuid_count(0x14, 1, &a, &b, &c, &d);
//printk("Supported IP Filter Regions: %lx\n", a&0x7); //printk("Supported IP Filter Regions: %lx\n", a&0x7);
supported_addrn = a&0x7; supported_addrn = a&0x7;