diff options
author | Steve Wise <swise@opengridcomputing.com> | 2009-04-09 10:09:38 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-04-09 20:21:16 -0400 |
commit | d39e0602bb987133321d358d9b837d67c27b223d (patch) | |
tree | 0353b7c1fd6b9b5672c5d4b74e1935428822a47a /net | |
parent | 11bc9421da3040c71fc96da1a31e95217e8cf2af (diff) |
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>
Diffstat (limited to 'net')
-rw-r--r-- | net/rds/ib_send.c | 2 | ||||
-rw-r--r-- | net/rds/iw_send.c | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/net/rds/ib_send.c b/net/rds/ib_send.c index cb6c52cb1c4c..fa684b7fc748 100644 --- a/net/rds/ib_send.c +++ b/net/rds/ib_send.c | |||
@@ -506,7 +506,7 @@ int rds_ib_xmit(struct rds_connection *conn, struct rds_message *rm, | |||
506 | flow_controlled++; | 506 | flow_controlled++; |
507 | } | 507 | } |
508 | if (work_alloc == 0) { | 508 | if (work_alloc == 0) { |
509 | rds_ib_ring_unalloc(&ic->i_send_ring, work_alloc); | 509 | set_bit(RDS_LL_SEND_FULL, &conn->c_flags); |
510 | rds_ib_stats_inc(s_ib_tx_throttle); | 510 | rds_ib_stats_inc(s_ib_tx_throttle); |
511 | ret = -ENOMEM; | 511 | ret = -ENOMEM; |
512 | goto out; | 512 | goto out; |
diff --git a/net/rds/iw_send.c b/net/rds/iw_send.c index 22dd38ffd608..626290bc7e97 100644 --- a/net/rds/iw_send.c +++ b/net/rds/iw_send.c | |||
@@ -549,7 +549,7 @@ int rds_iw_xmit(struct rds_connection *conn, struct rds_message *rm, | |||
549 | flow_controlled++; | 549 | flow_controlled++; |
550 | } | 550 | } |
551 | if (work_alloc == 0) { | 551 | if (work_alloc == 0) { |
552 | rds_iw_ring_unalloc(&ic->i_send_ring, work_alloc); | 552 | set_bit(RDS_LL_SEND_FULL, &conn->c_flags); |
553 | rds_iw_stats_inc(s_iw_tx_throttle); | 553 | rds_iw_stats_inc(s_iw_tx_throttle); |
554 | ret = -ENOMEM; | 554 | ret = -ENOMEM; |
555 | goto out; | 555 | goto out; |