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

Re: [Xen-devel] xen.git branch reorg / success with 2.6.30-rc3 pv_ops dom0



On Tue, 2009-06-09 at 10:53 -0400, Pasi KÃrkkÃinen wrote:
> 
> 
> And here's one with only the second patch applied:
> http://pasik.reaktio.net/xen/pv_ops-dom0-debug/pv_ops-dom0-log-07-with-highpte-no-swap-with-debug5.txt
> 
> Now Xen is complaining again.. does that sound correct?

Well, it suggests my theory around pte locking and split pte locks may
be invalid... I guess even without split pte locks the call to
kmap_atomic_pte from page_check_address() is still outside
mm->page_table_lock and hence subject to the race.

Without redoing the core locking rules I'm not sure what we could do
about that. Perhaps as a workaround always doing kmap_atomic_pte as a
read only mapping would be sufficient (it seems to be in this particular
call chain which never writes the pte but I didn't check them all and I
guess some of them must want to write).

Does this patch (without any of the others) make any difference to you?

--- a/arch/x86/xen/mmu.c
+++ b/arch/x86/xen/mmu.c
@@ -1522,7 +1522,7 @@ static void *xen_kmap_atomic_pte(struct page *page, enum 
km_type type)
 {
        pgprot_t prot = PAGE_KERNEL;
 
-       if (PagePinned(page))
+       if (1 || PagePinned(page))
                prot = PAGE_KERNEL_RO;
 
        if (0 && PageHighMem(page))


Ian.



_______________________________________________
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®.