On 2020/04/09 11:08, David Young wrote:
On Wed, Apr 08, 2020 at 11:01:52PM +0000, Jaromir Dolecek wrote:
Module Name: src
Committed By: jdolecek
Date: Wed Apr 8 23:01:52 UTC 2020
add a warning in checksum offload that hardware TCP segmentation might be
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*.
I don't think CoyotePoint ever fed its change back to NetBSD,
unfortunately. On the other hand, some other NetBSDer may have
independently fixed the bug.
Do any stats increase (vmstat -e, ifconfig -v wm0) when the poor
performance occurs? You may have to enable WM_DEBUG or something to see
all of the relevant stats.
m_defrag() was added to -current in September 2018, and 9.0,
8.1, post 7.2 have this code.
The driver has wmX txqYYtoomanyseg event counter, so we can check it
by enabling "options WM_EVENT_COUNTERS". The counter is disabled by
SAITOH Masanobu (msai...@execsw.org