From 8e82376e5f72bb576504c8c6117685e56c1b97db Mon Sep 17 00:00:00 2001 From: Andy Grover Date: Thu, 11 Mar 2010 13:49:58 +0000 Subject: RDS/TCP: Wait to wake thread when write space available Instead of waking the send thread whenever any send space is available, wait until it is at least half empty. This is modeled on how sock_def_write_space() does it, and may help to minimize context switches. Signed-off-by: Andy Grover Signed-off-by: David S. Miller --- net/rds/tcp_send.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'net/rds') diff --git a/net/rds/tcp_send.c b/net/rds/tcp_send.c index 34fdcc059e5..a28b895ff0d 100644 --- a/net/rds/tcp_send.c +++ b/net/rds/tcp_send.c @@ -240,7 +240,9 @@ void rds_tcp_write_space(struct sock *sk) tc->t_last_seen_una = rds_tcp_snd_una(tc); rds_send_drop_acked(conn, rds_tcp_snd_una(tc), rds_tcp_is_acked); - queue_delayed_work(rds_wq, &conn->c_send_w, 0); + if ((atomic_read(&sk->sk_wmem_alloc) << 1) <= sk->sk_sndbuf) + queue_delayed_work(rds_wq, &conn->c_send_w, 0); + out: read_unlock(&sk->sk_callback_lock); -- cgit v1.2.3