[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH RFC V3 3/5] xen: Force-enable relevant MSR events; optimize the number of sent MSR events
>>> On 23.07.14 at 14:34, <rcojocaru@xxxxxxxxxxxxxxx> wrote: > @@ -695,11 +696,34 @@ static void vmx_set_host_env(struct vcpu *v) > void vmx_disable_intercept_for_msr(struct vcpu *v, u32 msr, int type) > { > unsigned long *msr_bitmap = v->arch.hvm_vmx.msr_bitmap; > + struct domain *d = v->domain; > > /* VMX MSR bitmap supported? */ > if ( msr_bitmap == NULL ) > return; > > + if ( mem_event_check_ring(&d->mem_event->access) ) > + { > + /* Filter out MSR-s needed for memory introspection */ > + switch ( msr ) > + { > + case MSR_IA32_SYSENTER_EIP: > + case MSR_IA32_SYSENTER_ESP: > + case MSR_IA32_SYSENTER_CS: > + case MSR_IA32_MC0_CTL: > + case MSR_STAR: > + case MSR_LSTAR: > + > + gdprintk(XENLOG_DEBUG, "MSR 0x%08x " Is the current domain/vCPU really useful in this message? And do you really need the file name to be printed here? And does the MSR number really need to always be 8 characters wide? Or perhaps - is this message useful at all? > --- a/xen/arch/x86/mm/mem_event.c > +++ b/xen/arch/x86/mm/mem_event.c > @@ -30,6 +30,7 @@ > #include <asm/mem_access.h> > #include <asm/mem_sharing.h> > #include <xsm/xsm.h> > +#include <asm/hvm/vmx/vmcs.h> Please don't. > @@ -600,6 +601,22 @@ int mem_event_domctl(struct domain *d, > xen_domctl_mem_event_op_t *mec, > rc = mem_event_enable(d, mec, med, _VPF_mem_access, > HVM_PARAM_ACCESS_RING_PFN, > mem_access_notification); > + if ( rc == 0 ) > + { > + struct vcpu *v; > + > + /* Enable interception for MSRs needed for memory > introspection. */ > + for_each_vcpu ( d, v ) > + { > + /* Safe, because of previous if ( !cpu_has_vmx ) check. > */ Safe or not, VMX-specific code doesn't belong here. > + vmx_enable_intercept_for_msr(v, MSR_IA32_SYSENTER_EIP, > MSR_TYPE_W); > + vmx_enable_intercept_for_msr(v, MSR_IA32_SYSENTER_ESP, > MSR_TYPE_W); > + vmx_enable_intercept_for_msr(v, MSR_IA32_SYSENTER_CS, > MSR_TYPE_W); > + vmx_enable_intercept_for_msr(v, MSR_IA32_MC0_CTL, > MSR_TYPE_W); > + vmx_enable_intercept_for_msr(v, MSR_STAR, MSR_TYPE_W); > + vmx_enable_intercept_for_msr(v, MSR_LSTAR, MSR_TYPE_W); > + } > + } > } > break; Jan _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |