From mboxrd@z Thu Jan 1 00:00:00 1970 From: Gianluca Guida Subject: [PATCH] Avoid duplicates in fixup tables. Date: Thu, 18 Dec 2008 09:55:49 +0000 Message-ID: <494A1E25.2030306@eu.citrix.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------010409090906070907020301" 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. --------------010409090906070907020301 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit This patch avoids entering duplicates in fixup tables, reducing fixup evictions. Signed-off-by: Gianluca Guida --------------010409090906070907020301 Content-Type: text/x-patch; name="fixup_add-check-duplicates.patch" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="fixup_add-check-duplicates.patch" diff -r a76b4e00e186 xen/arch/x86/mm/shadow/common.c --- a/xen/arch/x86/mm/shadow/common.c Tue Dec 16 13:14:25 2008 +0000 +++ b/xen/arch/x86/mm/shadow/common.c Thu Dec 18 09:53:47 2008 +0000 @@ -627,6 +627,15 @@ void oos_fixup_add(struct vcpu *v, mfn_t idx = (idx + 1) % SHADOW_OOS_PAGES; if ( mfn_x(oos[idx]) == mfn_x(gmfn) ) { + int i; + for ( i = 0; i < SHADOW_OOS_FIXUPS; i++ ) + { + if ( mfn_valid(oos_fixup[idx].smfn[i]) + && (mfn_x(oos_fixup[idx].smfn[i]) == mfn_x(smfn)) + && (oos_fixup[idx].off[i] == off) ) + return; + } + next = oos_fixup[idx].next; if ( mfn_x(oos_fixup[idx].smfn[next]) != INVALID_MFN ) --------------010409090906070907020301 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 --------------010409090906070907020301--