From: Jan Beulich Date: Wed, 18 Jul 2018 08:36:40 +0000 (+0200) Subject: x86/HVM: avoid memory_type_changed() invocations when possible X-Git-Tag: archive/raspbian/4.14.0+80-gd101b417b7-1+rpi1^2~63^2~3595 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=4e34e0586f77aafd1cb85142de9c5e7ceaff84ee;p=xen.git x86/HVM: avoid memory_type_changed() invocations when possible 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é --- 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; }