From mboxrd@z Thu Jan 1 00:00:00 1970 From: Gianluca Guida Subject: [PATCH 4/4] Out-of-sync L1 shadows: Always unsync policy. Date: Fri, 20 Jun 2008 18:32:22 +0100 Message-ID: <485BE9A6.2040208@eu.citrix.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------050806050107000203070209" Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: xen-devel@lists.xensource.com List-Id: xen-devel@lists.xenproject.org This is a multi-part message in MIME format. --------------050806050107000203070209 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Unsync policy: always unsync pages on guest writes. Signed-off-by: Gianluca Guida --------------050806050107000203070209 Content-Type: text/x-patch; name="oos-policy.always.patch" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="oos-policy.always.patch" diff -r e1c198471d4d xen/arch/x86/mm/shadow/multi.c --- a/xen/arch/x86/mm/shadow/multi.c Fri Jun 20 15:11:33 2008 +0100 +++ b/xen/arch/x86/mm/shadow/multi.c Fri Jun 20 15:12:27 2008 +0100 @@ -3288,6 +3288,13 @@ static int sh_page_fault(struct vcpu *v, return 0; } +#if (SHADOW_OPTIMIZATIONS & SHOPT_OUT_OF_SYNC) + /* Always unsync when writing to L1 page tables. */ + if ( sh_mfn_is_a_page_table(gmfn) + && ft == ft_demand_write ) + sh_unsync(v, gmfn, va); +#endif /* OOS */ + /* Calculate the shadow entry and write it */ l1e_propagate_from_guest(v, gw.l1e, gmfn, &sl1e, ft, p2mt); r = shadow_set_l1e(v, ptr_sl1e, sl1e, sl1mfn); --------------050806050107000203070209 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel --------------050806050107000203070209--