[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, Jun 09, 2009 at 04:37:52PM +0100, Ian Campbell wrote:
> 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?
> 

Yeah, now the kernel crashes very early during system startup :)
http://pasik.reaktio.net/xen/pv_ops-dom0-debug/pv_ops-dom0-log-08-with-highpte-no-swap-with-debug6.txt

-- Pasi

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