[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] [shadow] Disable higher level pagetables early unshadow only when the "process dying" hypercall is used.
# HG changeset patch # User Gianluca Guida <gianluca.guida@xxxxxxxxxx> # Date 1321456773 0 # Node ID 3ecc8fef428138e4304ef11b47498981e63626b3 # Parent a5f1d3b1612bb48e1cb09dc66b0909e3613dc855 [shadow] Disable higher level pagetables early unshadow only when the "process dying" hypercall is used. This patch fixes a performance problem in fully virtualized guests. Signed-off-by: Gianluca Guida <gianluca.guida@xxxxxxxxxx> Tested-by: Jan Beulich <jbeulich@xxxxxxxx> Committed-by: Keir Fraser <keir@xxxxxxx> --- diff -r a5f1d3b1612b -r 3ecc8fef4281 xen/arch/x86/mm/shadow/multi.c --- a/xen/arch/x86/mm/shadow/multi.c Wed Nov 16 15:17:37 2011 +0000 +++ b/xen/arch/x86/mm/shadow/multi.c Wed Nov 16 15:19:33 2011 +0000 @@ -2728,8 +2728,9 @@ || ( !v->domain->arch.paging.shadow.pagetable_dying_op && v->arch.paging.shadow.last_emulated_mfn_for_unshadow == mfn_x(gmfn) ) ) && sh_mfn_is_a_page_table(gmfn) - && !(mfn_to_page(gmfn)->shadow_flags - & (SHF_L2_32|SHF_L2_PAE|SHF_L2H_PAE|SHF_L4_64)) ) + && (!v->domain->arch.paging.shadow.pagetable_dying_op || + !(mfn_to_page(gmfn)->shadow_flags + & (SHF_L2_32|SHF_L2_PAE|SHF_L2H_PAE|SHF_L4_64))) ) { perfc_incr(shadow_early_unshadow); sh_remove_shadows(v, gmfn, 1, 0 /* Fast, can fail to unshadow */ ); _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |