Messages in this thread | | | Date | Sat, 10 Jun 2006 10:23:00 +0200 | From | Ingo Molnar <> | Subject | Re: [PATCH] Fix for Bug in PI exit code |
| |
* Dinakar Guniguntala <dino@in.ibm.com> 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 majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |