ia64/xen-unstable

changeset 13914:cbbd748c4b58

[XEN] Re-sync PAE l3 shadows when PV guests change them
-in particular, for PAE Solaris guests
Signed-off-by: Tim Deegan <Tim.Deegan@xensource.com>
author Tim Deegan <Tim.Deegan@xensource.com>
date Wed Feb 14 14:44:07 2007 +0000 (2007-02-14)
parents d08c2af53804
children a00b8d3800a8
files xen/arch/x86/mm.c
line diff
     1.1 --- a/xen/arch/x86/mm.c	Wed Feb 14 12:14:49 2007 +0000
     1.2 +++ b/xen/arch/x86/mm.c	Wed Feb 14 14:44:07 2007 +0000
     1.3 @@ -977,6 +977,19 @@ static void pae_flush_pgd(
     1.4      l3_pgentry_t  *l3tab_ptr;
     1.5      struct pae_l3_cache *cache;
     1.6  
     1.7 +    if ( unlikely(shadow_mode_enabled(d)) )
     1.8 +    {
     1.9 +        cpumask_t m = CPU_MASK_NONE;
    1.10 +        /* Re-shadow this l3 table on any vcpus that are using it */
    1.11 +        for_each_vcpu ( d, v )
    1.12 +            if ( pagetable_get_pfn(v->arch.guest_table) == mfn )
    1.13 +            {
    1.14 +                paging_update_cr3(v);
    1.15 +                cpus_or(m, m, v->vcpu_dirty_cpumask);
    1.16 +            }
    1.17 +        flush_tlb_mask(m);
    1.18 +    }
    1.19 +
    1.20      /* If below 4GB then the pgdir is not shadowed in low memory. */
    1.21      if ( !l3tab_needs_shadow(mfn) )
    1.22          return;