[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] writable pagetables scalability issue
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
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |