[PATCH 06/14] RDS: check for congestion updates during rds_send_xmit

2015-08-22 Thread Santosh Shilimkar
Ensure we don't keep sending the data if the link is congested.

Reviewed-by: Ajaykumar Hotchandani 
Signed-off-by: Santosh Shilimkar 
Signed-off-by: Santosh Shilimkar 
---
 net/rds/send.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/net/rds/send.c b/net/rds/send.c
index e9430f5..dbdf907 100644
--- a/net/rds/send.c
+++ b/net/rds/send.c
@@ -411,7 +411,8 @@ over_batch:
 */
if (ret == 0) {
smp_mb();
-   if (!list_empty(>c_send_queue) &&
+   if ((test_bit(0, >c_map_queued) ||
+!list_empty(>c_send_queue)) &&
send_gen == conn->c_send_gen) {
rds_stats_inc(s_send_lock_queue_raced);
goto restart;
-- 
1.9.1

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[PATCH 06/14] RDS: check for congestion updates during rds_send_xmit

2015-08-22 Thread Santosh Shilimkar
Ensure we don't keep sending the data if the link is congested.

Reviewed-by: Ajaykumar Hotchandani ajaykumar.hotchand...@oracle.com
Signed-off-by: Santosh Shilimkar ssant...@kernel.org
Signed-off-by: Santosh Shilimkar santosh.shilim...@oracle.com
---
 net/rds/send.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/net/rds/send.c b/net/rds/send.c
index e9430f5..dbdf907 100644
--- a/net/rds/send.c
+++ b/net/rds/send.c
@@ -411,7 +411,8 @@ over_batch:
 */
if (ret == 0) {
smp_mb();
-   if (!list_empty(conn-c_send_queue) 
+   if ((test_bit(0, conn-c_map_queued) ||
+!list_empty(conn-c_send_queue)) 
send_gen == conn-c_send_gen) {
rds_stats_inc(s_send_lock_queue_raced);
goto restart;
-- 
1.9.1

--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/