Date: Mon, 19 Feb 2018 12:47:59 +0000 (UTC) From: Hans Petter Selasky <hselasky@FreeBSD.org> To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r329574 - projects/bsd_rdma_4_9_stable_11/sys/ofed/drivers/infiniband/ulp/ipoib Message-ID: <201802191247.w1JClxIg069516@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
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)
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201802191247.w1JClxIg069516>