![]() | |||||||||||||
Messages in this thread |
* Steven Rostedt <rostedt@goodmis.org> wrote: > Ingo,> > I just found another deadlock in the pi_lock logic. The PI logic is > very dependent on the P1->L1->P2->L2->P3 order. But our good old > friend is back, the BKL.> > Since the BKL is let go and regrabbed even if a task is grabbing > another lock, it messes up the order. For example, it can do the > following: L1->P1->L2->P2->L1 if L1 is the BKL. Luckly, (and I guess > there's really no other way) the BKL is only held by those that are > currently running, or at least not blocked on anyone. So I added code > in the pi_setprio code to test if the next lock in the loop is the BKL > and if so, if its owner is the current task. If so, the loop is > broken.> > Without this patch, I would constantly get lock ups on shutdown where > it sends SIGTERM to all the processes. It usually would lock up on > the killing of udev. But with the patch, I've shutdown a few times > already and no lockups so far. 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/ | ||||||||||||
| Last update: 2005-08-30 07:55 [from the cache] ©2003-2008 | |||||||||||||