rds: check for excessive looping in rds_send_xmit
Original commit from 2011 updated to include a change by Yuval Shaia <yuval.shaia@oracle.com> that adds a new statistic counter "send_stuck_rm" to capture the messages looping exessively in the send path. Signed-off-by: Gerd Rausch <gerd.rausch@oracle.com> Acked-by: Santosh Shilimkar <santosh.shilimkar@oracle.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

parent
55c70ca00c
commit
11740ef448
@@ -145,6 +145,7 @@ int rds_send_xmit(struct rds_conn_path *cp)
|
||||
LIST_HEAD(to_be_dropped);
|
||||
int batch_count;
|
||||
unsigned long send_gen = 0;
|
||||
int same_rm = 0;
|
||||
|
||||
restart:
|
||||
batch_count = 0;
|
||||
@@ -200,6 +201,17 @@ restart:
|
||||
|
||||
rm = cp->cp_xmit_rm;
|
||||
|
||||
if (!rm) {
|
||||
same_rm = 0;
|
||||
} else {
|
||||
same_rm++;
|
||||
if (same_rm >= 4096) {
|
||||
rds_stats_inc(s_send_stuck_rm);
|
||||
ret = -EAGAIN;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* If between sending messages, we can send a pending congestion
|
||||
* map update.
|
||||
|
Reference in New Issue
Block a user