Thread (11 messages) 11 messages, 3 authors, 2015-02-26

Re: [ANNOUNCE] 3.18.7-rt2

From: Mike Galbraith <hidden>
Date: 2015-02-24 17:50:22
Also in: lkml

On Tue, 2015-02-24 at 13:19 -0300, Gustavo Bittencourt wrote:
On Tue, Feb 24, 2015 at 10:41 AM, Mike Galbraith
[off-list ref] wrote:
quoted
locking, ww_mutex: fix ww_mutex vs self-deadlock

If the caller already holds the mutex, task_blocks_on_rt_mutex()
returns -EDEADLK, we proceed directly to rt_mutex_handle_deadlock()
where it's instant game over.

Let ww_mutexes return EDEADLK/EALREADY as they want to instead.

Signed-off-by: Mike Galbraith <redacted>
---
 kernel/locking/rtmutex.c |   17 +++++++++++------
 1 file changed, 11 insertions(+), 6 deletions(-)
--- a/kernel/locking/rtmutex.c
+++ b/kernel/locking/rtmutex.c
The deadlock returned after I applied this patch in v3.18.7-rt2. Here is my log:

Hrmph.  I definitely want your patch to die ;-)  It adds a whole new
dimension to ww_mutex that only now exists in -rt.  That's not good.  My
patchlet may not be perfect either, but it lets ww_mutex do that return
EALREADY business it's supposed to, vs going straight to while(1).  We
can't have it both ways, so I suppose I'll fire up my old Q6600 box
(that doesn't have annoying GTX980 that my userspace can't deal with DRM
wise), and see if I can chase the nouveau thing down.  I'm not all that
enthusiastic though, as there are or at least were other issues with
nouveau.  Sebastian reported some completely _missing_ locking IIRC,
that led to his box exploding. 

	-Mike
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help