net: diag: add a scheduling point in inet_diag_dump_icsk()
authorEric Dumazet <edumazet@google.com>
Mon, 14 Mar 2016 22:40:00 +0000 (15:40 -0700)
committerDavid S. Miller <davem@davemloft.net>
Mon, 14 Mar 2016 23:38:09 +0000 (19:38 -0400)
On loaded TCP servers, looking at millions of sockets can hold
cpu for many seconds, if the lookup condition is very narrow.

(eg : ss dst 1.2.3.4 )

Better add a cond_resched() to allow other processes to access
the cpu.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv4/inet_diag.c

index 50c0d96b8441cfc766ad0c3cc487fc6bb6ec54e2..5fdb02f5598ebd47d303d5a2df2f1cef4ea5073d 100644 (file)
@@ -879,6 +879,7 @@ next_normal:
                }
 
                spin_unlock_bh(lock);
+               cond_resched();
        }
 
 done: