Re: [PATCH] Fix deadlock in RPC scheduling code.

From: Aurelien Degremont
Date: Mon Mar 13 2006 - 05:06:51 EST


Trond Myklebust wrote:
Yes. The RPC_TASK_QUEUED bit can only be cleared when both the
RPC_TASK_WAKEUP bit _and_ the queue spinlock are held.
If you are holding either one of those two, then it is safe to test for
RPC_IS_QUEUED(). If the latter is true, then it is also safe to
dereference the value of task->u.tk_wait.rpc_waitq.

Hmmm... With those constraints, it seems difficult to be able to modify the current rpc_wake_up_task() function...

But, are you sure the patch you provided is sufficient to remove the potential deadlock we faced ? I do not see how, could you explain ?

--
Aurelien Degremont

-
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/