Thread (39 messages) 39 messages, 4 authors, 2018-01-17

Re: [PATCH v6 18/24] mm: Try spin lock in speculative path

From: Matthew Wilcox <willy@infradead.org>
Date: 2018-01-12 18:19:07
Also in: linux-mm, lkml

On Fri, Jan 12, 2018 at 06:26:02PM +0100, Laurent Dufour wrote:
There is a deadlock when a CPU is doing a speculative page fault and
another one is calling do_unmap().

The deadlock occurred because the speculative path try to spinlock the
pte while the interrupt are disabled. When the other CPU in the
unmap's path has locked the pte then is waiting for all the CPU to
invalidate the TLB. As the CPU doing the speculative fault have the
interrupt disable it can't invalidate the TLB, and can't get the lock.

Since we are in a speculative path, we can race with other mm action.
So let assume that the lock may not get acquired and fail the
speculative page fault.
It seems like you introduced this bug in the previous patch, and now
you're fixing it in this patch?  Why not merge the two?
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help