svn commit: r329574 - projects/bsd_rdma_4_9_stable_11/sys/ofed/drivers/infiniband/ulp/ipoib
Hans Petter Selasky
hselasky at FreeBSD.org
Mon Feb 19 12:48:00 UTC 2018
Author: hselasky
Date: Mon Feb 19 12:47:59 2018
New Revision: 329574
URL: https://svnweb.freebsd.org/changeset/base/329574
Log:
MFC r303646:
ipoib: Bound the number of egress mbufs buffered during pathrec lookups.
In pathological situations where the master subnet manager becomes
unresponsive for an extended period, we may otherwise end up queuing all
of the system's mbufs while waiting for a response to a path record lookup.
This addresses the same issue as commit 1e85b806f9 in Linux.
Reviewed by: cem, ngie
Sponsored by: EMC / Isilon Storage Division
Modified:
projects/bsd_rdma_4_9_stable_11/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_main.c
Directory Properties:
projects/bsd_rdma_4_9_stable_11/ (props changed)
Modified: projects/bsd_rdma_4_9_stable_11/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_main.c
==============================================================================
--- projects/bsd_rdma_4_9_stable_11/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_main.c Mon Feb 19 12:42:40 2018 (r329573)
+++ projects/bsd_rdma_4_9_stable_11/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_main.c Mon Feb 19 12:47:59 2018 (r329574)
@@ -685,7 +685,13 @@ ipoib_unicast_send(struct mbuf *mb, struct ipoib_dev_p
new_path = 1;
}
if (path) {
- _IF_ENQUEUE(&path->queue, mb);
+ if (_IF_QLEN(&path->queue) < IPOIB_MAX_PATH_REC_QUEUE)
+ _IF_ENQUEUE(&path->queue, mb);
+ else {
+ if_inc_counter(priv->dev, IFCOUNTER_OERRORS, 1);
+ m_freem(mb);
+ }
+
if (!path->query && path_rec_start(priv, path)) {
spin_unlock_irqrestore(&priv->lock, flags);
if (new_path)
More information about the svn-src-projects
mailing list