On Fri, Apr 10, 2020 at 11:19:02AM +0900, SAITOH Masanobu wrote: > On 2020/04/10 2:42, David Young wrote: > > On Thu, Apr 09, 2020 at 03:25:32PM +0900, SAITOH Masanobu wrote: > > > On 2020/04/09 11:08, David Young wrote: > > > > On Wed, Apr 08, 2020 at 11:01:52PM +0000, Jaromir Dolecek wrote: > > > > > on I219 I observe about 35% transmit performance drop when tso4 > > > > > enabled > > > > > > > > This sounds familiar. There was a bug affecting TCP segmentation > > > > offload (I think) that we found at CoyotePoint. ISTR > > > > bus_dmamap_load_mbuf(9) failed with EFBIG because under some > > > > circumstances the number of segments in the DMA map was too small > > > > for the mbuf chain. The driver would drop the whole mbuf chain > > > > on the floor. This showed up as terrible performance under some > > > > circumstances---possibly when the TCP window grew long? The solution > > > > was to increase the number of DMA segments, *I think*. > > > > > > m_defrag() was added to -current in September 2018, and 9.0, > > > 8.1, post 7.2 have this code. > > > > Thank you, that's just the change I was thinking of. > > You're welcome. > Some drivers still have no m_defrag() code, so we should add it > to them().
I had to stop using m_defrag because implementation details broke bwfm@pci. It can only handle a chain of length 1, and m_defrag gives a minimum of 2.