* Steven Rostedt <[EMAIL PROTECTED]> 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 [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to