Date: Thu, 18 Feb 2016 23:38:54 +0000 From: bugzilla-noreply@freebsd.org To: freebsd-bugs@FreeBSD.org Subject: [Bug 207319] ixv driver retries xmit indefinitely Message-ID: <bug-207319-8@https.bugs.freebsd.org/bugzilla/>
next in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D207319 Bug ID: 207319 Summary: ixv driver retries xmit indefinitely Product: Base System Version: 11.0-CURRENT Hardware: Any OS: Any Status: New Severity: Affects Only Me Priority: --- Component: kern Assignee: freebsd-bugs@FreeBSD.org Reporter: Mammootty.Muthira@emc.com I have been doing stress testing with SPECSFS on AWS with SRIOV feature with ixv driver and getting into issues. Further debugging showed this problem in the driver. When mbuf chain in the ixgbe_xmit() path contains large number of segments, mapping for dma through bus_dmamap_load_mbuf_sg() will fail with EFBIG and = will try the mapping after m_defrag(). If the total size of the data is more than 64K mapping will fail again and ixgbe_xmit() will fail. This failed packet = will be put back to the queue and the xmit failure and retry will continue indefinitely. Proposed fix is to drop the packet when mapping fails with EFBIG after defragmentation. diff --git a/sys/dev/ixgbe/ix_txrx.c b/sys/dev/ixgbe/ix_txrx.c index 35c1ddd..d9254e2 100644 --- a/sys/dev/ixgbe/ix_txrx.c +++ b/sys/dev/ixgbe/ix_txrx.c @@ -389,8 +389,11 @@ retry: } *m_headp =3D m; goto retry; - } else - return (error); + } + txr->no_tx_dma_setup++; + m_freem(*m_headp); + *m_headp =3D NULL; + return (error); case ENOMEM: txr->no_tx_dma_setup++; return (error); --=20 You are receiving this mail because: You are the assignee for the bug.=
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-207319-8>