Rick Macklem 209579aeac For NFS mounts using rsize,wsize=65536 over TSO enabled
network interfaces limited to 32 transmit segments, there
are two known issues.
The more serious one is that for an I/O of slightly less than 64K,
the net device driver prepends an ethernet header, resulting in a
TSO segment slightly larger than 64K. Since m_defrag() copies this
into 33 mbuf clusters, the transmit fails with EFBIG.
A tester indicated observing a similar failure using iSCSI.

The second less critical problem is that the network
device driver must copy the mbuf chain via m_defrag()
(m_collapse() is not sufficient), resulting in measurable overhead.

This patch reduces the default size of if_hw_tsomax
slightly, so that the first issue is avoided.
Fixing the second issue will require a way for the
network device driver to inform tcp_output() that it
is limited to 32 transmit segments.

Reported and tested by:	csforgeron@gmail.com, markus.gebert@hostpoint.ch
MFC after:	2 weeks
2014-04-17 23:31:50 +00:00
..
2014-03-05 02:35:15 +00:00
2014-02-17 12:07:17 +00:00
2014-03-14 02:58:48 +00:00
2014-03-14 06:29:43 +00:00
2013-11-15 12:12:50 +00:00
2014-03-14 06:29:43 +00:00
2014-03-14 02:58:48 +00:00
2014-03-14 06:29:43 +00:00
2014-03-14 06:29:43 +00:00
2014-03-14 02:58:48 +00:00
2014-03-14 06:29:43 +00:00
2014-03-14 02:58:48 +00:00
2013-11-26 15:23:56 +00:00
2014-03-14 06:29:43 +00:00