[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] [xen-unstable] [XEN] Re-sync PAE l3 shadows when PV guests change them



# HG changeset patch
# User Tim Deegan <Tim.Deegan@xxxxxxxxxxxxx>
# Date 1171464247 0
# Node ID cbbd748c4b58f66367b750a2fbba4da5b71fd94c
# Parent  d08c2af538045c16366ab5e5e99e1c4bd01f8223
[XEN] Re-sync PAE l3 shadows when PV guests change them
-in particular, for PAE Solaris guests
Signed-off-by: Tim Deegan <Tim.Deegan@xxxxxxxxxxxxx>
---
 xen/arch/x86/mm.c |   13 +++++++++++++
 1 files changed, 13 insertions(+)

diff -r d08c2af53804 -r cbbd748c4b58 xen/arch/x86/mm.c
--- a/xen/arch/x86/mm.c Wed Feb 14 12:14:49 2007 +0000
+++ b/xen/arch/x86/mm.c Wed Feb 14 14:44:07 2007 +0000
@@ -977,6 +977,19 @@ static void pae_flush_pgd(
     l3_pgentry_t  *l3tab_ptr;
     struct pae_l3_cache *cache;
 
+    if ( unlikely(shadow_mode_enabled(d)) )
+    {
+        cpumask_t m = CPU_MASK_NONE;
+        /* Re-shadow this l3 table on any vcpus that are using it */
+        for_each_vcpu ( d, v )
+            if ( pagetable_get_pfn(v->arch.guest_table) == mfn )
+            {
+                paging_update_cr3(v);
+                cpus_or(m, m, v->vcpu_dirty_cpumask);
+            }
+        flush_tlb_mask(m);
+    }
+
     /* If below 4GB then the pgdir is not shadowed in low memory. */
     if ( !l3tab_needs_shadow(mfn) )
         return;

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.