|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] xen: Filter out MSR write events
On Mon, Apr 11, 2016 at 07:41:54PM +0300, Razvan Cojocaru wrote:
> This patch only allows introspection-related MSR write events to
> be sent out, improving performance. Should additional events be
> required, they can then simply be added to the list of
> vmx_introspection_force_enabled_msrs[].
>
> Signed-off-by: Razvan Cojocaru <rcojocaru@xxxxxxxxxxxxxxx>
Reviewed-by: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx>
Thought should there be some .. dynamic mechanism to update
the MSR list? Or remove entries (or temporarily blacklist
the built-one ins), etc?
> ---
> xen/arch/x86/hvm/hvm.c | 14 +++++++++++++-
> 1 file changed, 13 insertions(+), 1 deletion(-)
>
> diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
> index f24126d..21ba611 100644
> --- a/xen/arch/x86/hvm/hvm.c
> +++ b/xen/arch/x86/hvm/hvm.c
> @@ -3688,6 +3688,17 @@ int hvm_msr_read_intercept(unsigned int msr, uint64_t
> *msr_content)
> goto out;
> }
>
> +static bool_t is_introspection_msr(unsigned int msr)
> +{
> + unsigned int i;
> +
> + for ( i = 0; i < vmx_introspection_force_enabled_msrs_size; i++ )
> + if ( msr == vmx_introspection_force_enabled_msrs[i] )
> + return 1;
> +
> + return 0;
> +}
> +
> int hvm_msr_write_intercept(unsigned int msr, uint64_t msr_content,
> bool_t may_defer)
> {
> @@ -3703,7 +3714,8 @@ int hvm_msr_write_intercept(unsigned int msr, uint64_t
> msr_content,
> hvm_cpuid(1, NULL, NULL, NULL, &edx);
> mtrr = !!(edx & cpufeat_mask(X86_FEATURE_MTRR));
>
> - if ( may_defer && unlikely(currad->monitor.mov_to_msr_enabled) )
> + if ( may_defer && unlikely(currad->monitor.mov_to_msr_enabled) &&
> + is_introspection_msr(msr) )
> {
> ASSERT(v->arch.vm_event);
>
> --
> 2.8.0
>
>
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@xxxxxxxxxxxxx
> http://lists.xen.org/xen-devel
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |