* Dinakar Guniguntala <[email protected]> wrote:
> We were seeing oopses like below a lot when using PI mutexes
> ===============================================================================
> After a lot of debugging we found that this is caused due to the following race.
> PM is a PI mutex, A and B are RT threads
>
> Thread A (RT) Thread B (RT)
> |
> v
> pthread_mutex_lock (PM) |
> (glibc) got mutex v
> do work pthread_mutex_lock (PM)
> rt_mutex_timed_lock
>
> EINTR EINTR (Process gets aborted)
>
> do_exit lock(pi_mutex->lock->wait_lock)
> exit_pi_state_list clear_waiters
> lock(hb->lock)
> pi_state->owner = NULL unlock(pi_mutex->lock->wait_lock)
> rt_mutex_unlock(pi_mutex) lock(hb->lock) (blocks)
> unlock(hb->lock) unblock -> free_pi_state
> continue exit processing doesn't expect pi_state->owner to be NULL
> Panic
>
> The patch attached below seems to make this problem go away. This has
> been stress tested quite a bit in the past 24 hours. Does it look sane
> to you ??
yeah, makes sense. Thanks, applied.
Ingo
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Stuff]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
[Linux Resources]