xen-devel
[Xen-devel] Re: [PATCH] fix pgd_lock deadlock
To: |
Andrea Arcangeli <aarcange@xxxxxxxxxx> |
Subject: |
[Xen-devel] Re: [PATCH] fix pgd_lock deadlock |
From: |
Thomas Gleixner <tglx@xxxxxxxxxxxxx> |
Date: |
Tue, 15 Feb 2011 21:26:35 +0100 (CET) |
Cc: |
Jeremy Fitzhardinge <jeremy@xxxxxxxx>, "Xen-devel@xxxxxxxxxxxxxxxxxxx" <Xen-devel@xxxxxxxxxxxxxxxxxxx>, Ian Campbell <Ian.Campbell@xxxxxxxxxx>, the arch/x86 maintainers <x86@xxxxxxxxxx>, Hugh Dickins <hughd@xxxxxxxxxx>, Linux Kernel Mailing List <linux-kernel@xxxxxxxxxxxxxxx>, Jan Beulich <JBeulich@xxxxxxxxxx>, Andi Kleen <ak@xxxxxxx>, Johannes Weiner <jweiner@xxxxxxxxxx>, "H. Peter Anvin" <hpa@xxxxxxxxx>, Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>, Larry Woodman <lwoodman@xxxxxxxxxx> |
Delivery-date: |
Tue, 15 Feb 2011 12:28:21 -0800 |
Envelope-to: |
www-data@xxxxxxxxxxxxxxxxxxx |
In-reply-to: |
<alpine.LFD.2.00.1102152102530.26192@xxxxxxxxxxxxxxxxxxxxxxx> |
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/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe> |
List-unsubscribe: |
<http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe> |
References: |
<4CB76E8B.2090309@xxxxxxxx> <4CC0AB73.8060609@xxxxxxxx> <20110203024838.GI5843@xxxxxxxxxxxxx> <4D4B1392.5090603@xxxxxxxx> <20110204012109.GP5843@xxxxxxxxxxxxx> <4D4C6F45.6010204@xxxxxxxx> <20110207232045.GJ3347@xxxxxxxxxxxxx> <20110215190710.GL5935@xxxxxxxxxxxxx> <alpine.LFD.2.00.1102152020590.26192@xxxxxxxxxxxxxxxxxxxxxxx> <20110215195450.GO5935@xxxxxxxxxxxxx> <alpine.LFD.2.00.1102152102530.26192@xxxxxxxxxxxxxxxxxxxxxxx> |
Sender: |
xen-devel-bounces@xxxxxxxxxxxxxxxxxxx |
User-agent: |
Alpine 2.00 (LFD 1167 2008-08-23) |
On Tue, 15 Feb 2011, Thomas Gleixner wrote:
> On Tue, 15 Feb 2011, Andrea Arcangeli wrote:
> > On Tue, Feb 15, 2011 at 08:26:51PM +0100, Thomas Gleixner wrote:
> >
> > With NR_CPUs < 4, or with THP enabled, rmap.c will do
> > spin_lock(&mm->page_table_lock) (or pte_offset_map_lock where the lock
> > is still mm->page_table_lock and not the PT lock). Then it will send
> > IPIs to flush the tlb of the other CPUs.
> >
> > But the other CPU is running the vmalloc_sync_all, and it is trying to
> > take the page_table_lock with irq disabled. It will never take the
> > lock because the CPU waiting the IPI delivery holds it. And it will
> > never run the IPI because it has irqs disabled.
>
> Ok, that makes sense :)
>
> > Now the big question is if anything is taking the pgd_lock from
> > irqs. Normal testing could never reveal it as even if it happens it
> > has a slim chance to happen while the pgd_lock is already hold by
> > normal kernel context. But the VM_BUG_ON(in_interrupt()) should
> > hopefully have revealed it already if it ever happened, I hope.
> >
> > Clearly we could try to fix it in other ways, but still if there's no
> > reason to do the _irqsave this sounds a good idea to apply my fix
> > anyway.
>
> Did you try with DEBUG_PAGEALLOC, which is calling into cpa quite a
> lot?
Another thing. You check for in_interrupt(), but what makes sure that
the code which takes pgd_lock is never taken with interrupts disabled
except during early boot ?
Thanks,
tglx
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
<Prev in Thread] |
Current Thread |
[Next in Thread>
|
- [Xen-devel] Re: [PATCH] x86: hold mm->page_table_lock while doing vmalloc_sync, Andrea Arcangeli
- [Xen-devel] Re: [PATCH] x86: hold mm->page_table_lock while doing vmalloc_sync, Jeremy Fitzhardinge
- [Xen-devel] Re: [PATCH] x86: hold mm->page_table_lock while doing vmalloc_sync, Andrea Arcangeli
- [Xen-devel] Re: [PATCH] x86: hold mm->page_table_lock while doing vmalloc_sync, Jeremy Fitzhardinge
- [Xen-devel] Re: [PATCH] x86: hold mm->page_table_lock while doing vmalloc_sync, Andrea Arcangeli
- [Xen-devel] [PATCH] fix pgd_lock deadlock, Andrea Arcangeli
- [Xen-devel] Re: [PATCH] fix pgd_lock deadlock, Thomas Gleixner
- [Xen-devel] Re: [PATCH] fix pgd_lock deadlock, Larry Woodman
- [Xen-devel] Re: [PATCH] fix pgd_lock deadlock, Andrea Arcangeli
- [Xen-devel] Re: [PATCH] fix pgd_lock deadlock, Thomas Gleixner
- [Xen-devel] Re: [PATCH] fix pgd_lock deadlock,
Thomas Gleixner <=
- [Xen-devel] Re: [PATCH] fix pgd_lock deadlock, Andrea Arcangeli
- [Xen-devel] Re: [PATCH] fix pgd_lock deadlock, Thomas Gleixner
- [Xen-devel] Re: [PATCH] fix pgd_lock deadlock, Andrea Arcangeli
- [Xen-devel] Re: [PATCH] fix pgd_lock deadlock, Peter Zijlstra
- [Xen-devel] Re: [PATCH] fix pgd_lock deadlock, Andrea Arcangeli
- [Xen-devel] Re: [PATCH] fix pgd_lock deadlock, Ingo Molnar
- [Xen-devel] Re: [PATCH] fix pgd_lock deadlock, Andrea Arcangeli
- [Xen-devel] Re: [PATCH] fix pgd_lock deadlock, Rik van Riel
- [Xen-devel] Re: [PATCH] fix pgd_lock deadlock, Ingo Molnar
- [Xen-devel] Re: [PATCH] fix pgd_lock deadlock, Andrea Arcangeli
|
|
|