On Sun, Sep 19, 2004 at 10:02:49PM +1000, herbert wrote:
>
> Another reason why this is bogus.
>
> Most kernel users of unicast have a send timeout setting of 0. Therefore
> your wake_up_process() call will never happen when netlink_attachskb is
> called by the kernel.
In fact this is the reason why this whole problem is non-existant.
Unless there is a kernel user that sends netlink messages with a timeout
value other than 0, this patch does not resolve any dead-locks at all
since there is none to start with. The reason is that the kernel will
simply drop the message when the destination socket queue is full.
So it looks to me as if this entire patch is simply papering over bugs
in the user-space application where it either isn't processing the
messages fast enough or it needs to enlarge its queue size.
Here is a tip, use separate sockets for unicast and multicast messages.
That way your unicast socket is very unlikely to overrun.
So I'd like to see the whole thing reverted.
Cheers,
--
Visit Openswan at http://www.openswan.org/
Email: Herbert Xu ~{PmV>HI~} <herbert@xxxxxxxxxxxxxxxxxxx>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
|