forked from Minki/linux
RDS/IW+IB: Set the RDS_LL_SEND_FULL bit when we're throttled.
The RDS_LL_SEND_FULL bit should be set when we stop transmitted due to flow control. Otherwise the send worker will keep trying as opposed to sleeping until we unthrottle. Saves CPU. Signed-off-by: Steve Wise <swise@opengridcomputing.com> Signed-off-by: Andy Grover <andy.grover@oracle.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
11bc9421da
commit
d39e0602bb
@ -506,7 +506,7 @@ int rds_ib_xmit(struct rds_connection *conn, struct rds_message *rm,
|
||||
flow_controlled++;
|
||||
}
|
||||
if (work_alloc == 0) {
|
||||
rds_ib_ring_unalloc(&ic->i_send_ring, work_alloc);
|
||||
set_bit(RDS_LL_SEND_FULL, &conn->c_flags);
|
||||
rds_ib_stats_inc(s_ib_tx_throttle);
|
||||
ret = -ENOMEM;
|
||||
goto out;
|
||||
|
@ -549,7 +549,7 @@ int rds_iw_xmit(struct rds_connection *conn, struct rds_message *rm,
|
||||
flow_controlled++;
|
||||
}
|
||||
if (work_alloc == 0) {
|
||||
rds_iw_ring_unalloc(&ic->i_send_ring, work_alloc);
|
||||
set_bit(RDS_LL_SEND_FULL, &conn->c_flags);
|
||||
rds_iw_stats_inc(s_iw_tx_throttle);
|
||||
ret = -ENOMEM;
|
||||
goto out;
|
||||
|
Loading…
Reference in New Issue
Block a user