]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
netlink: wake up netlink listeners sooner (v2)
authorstephen hemminger <shemminger@vyatta.com>
Thu, 22 Dec 2011 08:52:03 +0000 (08:52 +0000)
committerPaul Gortmaker <paul.gortmaker@windriver.com>
Mon, 10 Feb 2014 21:10:55 +0000 (16:10 -0500)
commit 2c64580046a122fa15bb586d8ca4fd5e4b69a1e7 upstream.

This patch changes it to yield sooner at halfway instead. Still not a cure-all
for listener overrun if listner is slow, but works much reliably.

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
net/netlink/af_netlink.c

index fe6313140563b8ed340b7231576bf399db5a1a42..ba9f6129ff32135f82ebf127a7fad1df267f588a 100644 (file)
@@ -962,7 +962,7 @@ static inline int netlink_broadcast_deliver(struct sock *sk,
                skb_set_owner_r(skb, sk);
                skb_queue_tail(&sk->sk_receive_queue, skb);
                sk->sk_data_ready(sk, skb->len);
-               return atomic_read(&sk->sk_rmem_alloc) > sk->sk_rcvbuf;
+               return atomic_read(&sk->sk_rmem_alloc) > (sk->sk_rcvbuf >> 1);
        }
        return -1;
 }