WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

Re: [Xen-devel] Why is 'emulate' as good as writable PT's?

To: Keir Fraser <Keir.Fraser@xxxxxxxxxxxx>
Subject: Re: [Xen-devel] Why is 'emulate' as good as writable PT's?
From: Andrew Theurer <habanero@xxxxxxxxxx>
Date: Thu, 08 Jun 2006 11:05:17 -0500
Cc: Ian Pratt <m+Ian.Pratt@xxxxxxxxxxxx>, Xen development list <xen-devel@xxxxxxxxxxxxxxxxxxx>, Rolf Neugebauer <rn@xxxxxxx>
Delivery-date: Thu, 08 Jun 2006 09:11:56 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
In-reply-to: <b40d0941f5d4c3bd6fc0ad79fc0503d6@xxxxxxxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
References: <A95E2296287EAD4EB592B5DEEFCE0E9D4BA988@xxxxxxxxxxxxxxxxxxxxxxxxxxx> <4485E557.2020005@xxxxxxxxxx> <b40d0941f5d4c3bd6fc0ad79fc0503d6@xxxxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Thunderbird 1.5.0.4 (X11/20060516)
Keir Fraser wrote:

On 6 Jun 2006, at 21:28, Andrew Theurer wrote:

Yes, we definitely have a problem here. Tons of flushes with modified=1, and lots with <=10. The three benchmarks all seem to hit the same areas. Here is the output from running SDET, with snippets from System.map mixed in:

Is this PAE? SMP guest?

Do you know much about the SDET benchmark? For example, do you know how big the mprotect() calls it makes are likely to be? If vma's are small and fairly sparse then the writable pagetable batching won't be a win.

 -- Keir

I was wondering, perhaps we are not just triggering writable pagetables when we shouldn't, but maybe we are flushing them back too early. I added some xen perf counters to get an idea of why we are flushing back wtpt's (run on SDET again):

                       modified:  0 <=10  <=20  <=30  <=40  <=50
1 writable pt updates    T=1086   0  612   194   111    49    85
2 ptwr_flush: called from ptwr_emulated_update because wtpt exists  T=0
3 ptwr_flush: called from ptwr_do_page_fault because wtpt is already used T=338
4 ptwr_flush: called from spurious_page_fault  T=0
5 ptwr_flush: called from fixup_page_fault  T=0
6 ptwr_flush: called from cleanup_wpt, do_mmuext_op (active) T=467
7 ptwr_flush: called from cleanup_wpt, do_mmuext_op (inactive) T=0
8 ptwr_flush: called from cleanup_wpt, update_va_mapping (active) T=280
9 ptwr_flush: called from cleanup_wpt, update_va_mapping (inactive) T=0
10 ptwr_flush: called from cleanup_wpt, do_mmu_update (active) T=1
11 ptwr_flush: called from cleanup_wpt, do_mmu_update (inactive) T=0

line 2: I don't think we have a choice here, right? Not a big deal, as it's not happening anyway.

line 3: I think we can just goto emulate instead of flushing back the wtpt here, right? I've tried this, but no real difference in performance. Could we increase the number of wtpt's we keep track of, so we don't have to flush back or emulate?

line 6: We seem to call cleanup_writable_pagetables unconditionally here, and if either of the active or inactive pages are used, they get flushed back. Do we always need to do this?

line 8: Also call cleanup_writable_pagetables unconditionally here. Do the wtpt's always need this to happen? Is is possible the update_va_mapping call is for an address space which does not affect the wtpt?

line 10: Not seeing many flushes here, so I guess it's not an issue.

Sorry if these questions seem odd. There's a good chance I am not "getting it" :)

Thanks,

-Andrew



_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel