On Tue, Aug 16, 2016 at 05:41:28PM -0700, Mark Johnston wrote:
M> > M> Log:
M> > M>   ipoib: Bound the number of egress mbufs buffered during pathrec 
lookups.
M> > M>   
M> > M>   In pathological situations where the master subnet manager becomes
M> > M>   unresponsive for an extended period, we may otherwise end up queuing 
all
M> > M>   of the system's mbufs while waiting for a response to a path record 
lookup.
M> > M>   
M> > M>   This addresses the same issue as commit 1e85b806f9 in Linux.
M> > M>   
M> > M>   Reviewed by:  cem, ngie
M> > M>   MFC after:    2 weeks
M> > M>   Sponsored by: EMC / Isilon Storage Division
M> > M> 
M> > M> Modified:
M> > M>   head/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_main.c
M> > M> 
M> > M> Modified: head/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_main.c
M> > M> 
==============================================================================
M> > M> --- head/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_main.c     Mon Aug 
 1 22:19:23 2016        (r303645)
M> > M> +++ head/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_main.c     Mon Aug 
 1 22:22:11 2016        (r303646)
M> > M> @@ -660,7 +660,13 @@ ipoib_unicast_send(struct mbuf *mb, stru
M> > M>                         new_path = 1;
M> > M>                 }
M> > M>                 if (path) {
M> > M> -                       _IF_ENQUEUE(&path->queue, mb);
M> > M> +                       if (_IF_QLEN(&path->queue) < 
IPOIB_MAX_PATH_REC_QUEUE)
M> > M> +                               _IF_ENQUEUE(&path->queue, mb);
M> > M> +                       else {
M> > M> +                               if_inc_counter(priv->dev, 
IFCOUNTER_OERRORS, 1);
M> > M> +                               m_freem(mb);
M> > M> +                       }
M> > 
M> > Shouldn't that be IFCOUNTER_ODROPS?
M> 
M> I'm not sure. I used IFCOUNTER_OERRORS to be consistent with other error
M> cases in this function. This error case doesn't represent the normal
M> source of outbound packet drops but rather indicates that a key routing
M> agent on the network is not responding. OQDROPS seems like it's
M> specifically for the case that we can't buffer packets because the
M> transmitter isn't keeping up.

I see. The fact that this is an if_queue has confused me. I expected that
it is an ifqueue belonging to an ifnet.

btw, may be this ifqueue can be reduced to mbufq.

-- 
Totus tuus, Glebius.
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to