ia64/xen-unstable

changeset 17906:6563ea38e002

Out-of-sync L1 shadows: always unsync pages on guest writes.

Signed-off-by: Gianluca Guida <gianluca.guida@eu.citrix.com>
author Keir Fraser <keir.fraser@citrix.com>
date Fri Jun 20 18:41:50 2008 +0100 (2008-06-20)
parents 7b66b4e9f743
children dedfadeadf86
files xen/arch/x86/mm/shadow/multi.c
line diff
     1.1 --- a/xen/arch/x86/mm/shadow/multi.c	Fri Jun 20 18:41:09 2008 +0100
     1.2 +++ b/xen/arch/x86/mm/shadow/multi.c	Fri Jun 20 18:41:50 2008 +0100
     1.3 @@ -3288,6 +3288,13 @@ static int sh_page_fault(struct vcpu *v,
     1.4          return 0;
     1.5      }
     1.6  
     1.7 +#if (SHADOW_OPTIMIZATIONS & SHOPT_OUT_OF_SYNC)
     1.8 +    /* Always unsync when writing to L1 page tables. */
     1.9 +    if ( sh_mfn_is_a_page_table(gmfn)
    1.10 +         && ft == ft_demand_write )
    1.11 +        sh_unsync(v, gmfn, va);
    1.12 +#endif /* OOS */
    1.13 +
    1.14      /* Calculate the shadow entry and write it */
    1.15      l1e_propagate_from_guest(v, gw.l1e, gmfn, &sl1e, ft, p2mt);
    1.16      r = shadow_set_l1e(v, ptr_sl1e, sl1e, sl1mfn);