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 <andy.grover@oracle.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
b075cfdb66
commit
8e82376e5f
|
@ -240,7 +240,9 @@ void rds_tcp_write_space(struct sock *sk)
|
||||||
tc->t_last_seen_una = rds_tcp_snd_una(tc);
|
tc->t_last_seen_una = rds_tcp_snd_una(tc);
|
||||||
rds_send_drop_acked(conn, rds_tcp_snd_una(tc), rds_tcp_is_acked);
|
rds_send_drop_acked(conn, rds_tcp_snd_una(tc), rds_tcp_is_acked);
|
||||||
|
|
||||||
|
if ((atomic_read(&sk->sk_wmem_alloc) << 1) <= sk->sk_sndbuf)
|
||||||
queue_delayed_work(rds_wq, &conn->c_send_w, 0);
|
queue_delayed_work(rds_wq, &conn->c_send_w, 0);
|
||||||
|
|
||||||
out:
|
out:
|
||||||
read_unlock(&sk->sk_callback_lock);
|
read_unlock(&sk->sk_callback_lock);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue