|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH RFC V7 3/5] xen, libxc: Force-enable relevant MSR events
>>> On 13.08.14 at 17:28, <rcojocaru@xxxxxxxxxxxxxxx> wrote:
> Changes since V6:
> - Moved the array of interesting MSRs to common header.
Urgh (see below).
> @@ -695,11 +696,23 @@ 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) &&
> + d->arch.hvm_domain.introspection_enabled )
Reverse the two sides of the && to do the obviously cheap check
first (and maybe wrap that in unlikely())?
> @@ -600,13 +601,25 @@ 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 ( mec->op == XEN_DOMCTL_MEM_EVENT_OP_ACCESS_ENABLE )
> + break;
> +
> + if ( rc == 0 && hvm_funcs.enable_msr_exit_interception )
No reason not to combine the two if()s afaict.
> --- a/xen/include/asm-x86/hvm/domain.h
> +++ b/xen/include/asm-x86/hvm/domain.h
> @@ -145,6 +145,8 @@ struct hvm_domain {
> struct vmx_domain vmx;
> struct svm_domain svm;
> };
> +
> + bool_t introspection_enabled;
Please put this adjacent to the four other bool_t-s a few lines above,
thus filling (rather than creating) a gap.
> --- a/xen/include/asm-x86/hvm/vmx/vmcs.h
> +++ b/xen/include/asm-x86/hvm/vmx/vmcs.h
> @@ -471,6 +471,15 @@ enum vmcs_field {
> HOST_RIP = 0x00006c16,
> };
>
> +static const u32 msrs_exit_array[] = {
> + MSR_IA32_SYSENTER_EIP,
> + MSR_IA32_SYSENTER_ESP,
> + MSR_IA32_SYSENTER_CS,
> + MSR_IA32_MC0_CTL,
> + MSR_STAR,
> + MSR_LSTAR
> +};
So why do you need more than one instance of this in the hypervisor?
This should just be a declaration here, and a definition in one of the
source files. Furthermore its name should start with vmx_.
Jan
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |