From 4e34e0586f77aafd1cb85142de9c5e7ceaff84ee Mon Sep 17 00:00:00 2001 From: Jan Beulich Date: Wed, 18 Jul 2018 10:36:40 +0200 Subject: [PATCH] x86/HVM: avoid memory_type_changed() invocations when possible MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit They're expensive, and nothing changes if MTRRs are disabled and any of the ranges gets changed, or if fixed range MTRRs are disabled and any of them gets changed. Signed-off-by: Jan Beulich Acked-by: Andrew Cooper Reviewed-by: Roger Pau Monné --- xen/arch/x86/hvm/mtrr.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/xen/arch/x86/hvm/mtrr.c b/xen/arch/x86/hvm/mtrr.c index eb86cbacb4..c502dda693 100644 --- a/xen/arch/x86/hvm/mtrr.c +++ b/xen/arch/x86/hvm/mtrr.c @@ -472,7 +472,9 @@ bool_t mtrr_fix_range_msr_set(struct domain *d, struct mtrr_state *m, return 0; fixed_range_base[row] = msr_content; - memory_type_changed(d); + + if ( m->enabled && m->fixed_enabled ) + memory_type_changed(d); } return 1; @@ -515,7 +517,8 @@ bool_t mtrr_var_range_msr_set( m->overlapped = is_var_mtrr_overlapped(m); - memory_type_changed(d); + if ( m->enabled ) + memory_type_changed(d); return 1; } -- 2.30.2