[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] writable pagetables scalability issue


  • To: xen-devel@xxxxxxxxxxxxxxxxxxx
  • From: Rik van Riel <riel@xxxxxxxxxx>
  • Date: Fri, 7 Dec 2007 12:06:48 -0500
  • Delivery-date: Fri, 07 Dec 2007 09:07:33 -0800
  • List-id: Xen developer discussion <xen-devel.lists.xensource.com>

Currently mprotect (and other operations) on paravirt domains have
very bad scalability.  This is no surprise, since all writable
pagetable operations happen under the domain big lock, allowing
only one VCPU at a time to fill in or change PTEs.

This seems an unnecessary restriction, since all the writable
pagetable code does most of the time is atomic updates to page
table entries that are already in place.

I do not understand what we need to protect against, except of
course page table pages changing status (new page table pages
being added, old page table pages becoming writable again) while
handling a writable pagetable fault.

Does anybody see issues with putting all of the writable pagetable 
operations under a read-write lock, with the code paths that change
page table entries (mostly the fault handling) taking the lock in
read mode, and the code paths that change the status of pages taking
the lock in write mode?

That way we can guarantee that the writable page table pages do not
change status while handling a fault (and we get concurrency), blocking
out the write fault handling only while new page table pages are being
created or destroyed.


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


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.