Re: [BUG] futex_unlock_pi() hurts my brain and may cause application deadlock

From: Ingo Molnar
Date: Thu May 31 2007 - 10:26:00 EST



* john stultz <johnstul@xxxxxxxxxx> wrote:

> So we've been seeing PI mutex deadlocks with a few of our
> applications using the -rt kernel. After narrowing things down, we
> were finding that the applications were indirectly calling
> futex_unlock_pi(), which on occasion would return -EFAULT, which is
> promptly ignored by glibc. This would cause the application to
> continue on as if it has unlocked the mutex, until it tried to
> reacquire it and deadlock.

> --- a/kernel/futex.c
> +++ b/kernel/futex.c
> @@ -2011,6 +2011,7 @@ pi_faulted:
> attempt);
> if (ret)
> goto out_unlock;
> + uval = 0;
> goto retry_locked;

this looks good to me. Oleg has posted a few more fixes as well - have
you tried those too?

Ingo
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/