]> xenbits.xensource.com Git - xen.git/commitdiff
x86/HVM: avoid memory_type_changed() invocations when possible
authorJan Beulich <jbeulich@suse.com>
Wed, 18 Jul 2018 08:36:40 +0000 (10:36 +0200)
committerJan Beulich <jbeulich@suse.com>
Wed, 18 Jul 2018 08:36:40 +0000 (10:36 +0200)
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 <jbeulich@suse.com>
Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>
xen/arch/x86/hvm/mtrr.c

index eb86cbacb4ec6cc60f871be63ee6bff8f38818af..c502dda693b62647d43eb587dfb210f9f79c9fcf 100644 (file)
@@ -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;
 }