Current process gives up if its send work over the batch limit. The work queue will get kicked to finish off any other requests. This fixes remainder condition from commit 443be0e5affe ("RDS: make sure not to loop forever inside rds_send_xmit").
The restart condition is only for the case where we reached to over_batch code for some other reason so just retrying again before giving up. Signed-off-by: Santosh Shilimkar <ssant...@kernel.org> Signed-off-by: Santosh Shilimkar <santosh.shilim...@oracle.com> --- net/rds/send.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/net/rds/send.c b/net/rds/send.c index 4df61a5..f1e709c 100644 --- a/net/rds/send.c +++ b/net/rds/send.c @@ -423,7 +423,9 @@ over_batch: !list_empty(&conn->c_send_queue)) && send_gen == conn->c_send_gen) { rds_stats_inc(s_send_lock_queue_raced); - goto restart; + if (batch_count < 1024) + goto restart; + queue_delayed_work(rds_wq, &conn->c_send_w, 1); } } out: -- 1.9.1 -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html