--- - branch: MAIN date: Tue Nov 27 19:17:02 UTC 2018 files: - new: '1.317' old: '1.316' path: src/sys/dev/pci/if_bge.c pathrev: src/sys/dev/pci/if_bge.c@1.317 type: modified - new: '1.24' old: '1.23' path: src/sys/dev/pci/if_bgevar.h pathrev: src/sys/dev/pci/if_bgevar.h@1.24 type: modified id: 20181127T191702Z.6e6d9cc73841b74a30795f4b822147d02c9900c8 log: | More TSO4 fixes, from the freebsd driver: - the chip doens't want the lenght of options, but the complete lenght of ip headers (ip + tcp + options). Fix this for the BGE_IS_5717_PLUS() and BGE_IS_5705_PLUS() cases; FreeBSD doens't cover the last case so leave it as is for now. This fixes checksum failures for heavy transfers. - It looks like the transmit engine hangs if the TCP segment crosses a 4GB boundary. FreeBSD fixes it by mapping everything below 4GB; instead try detect when this happens and do the bounce only when needed. With these fixes I could transfers 3GB images over ftp at gigabit speed (112MB/s with wget) without problems. Tested on a bge0 at pci4 dev 0 function 0: Broadcom BCM5720 Gigabit Ethernet bge0: APE firmware NCSI 1.4.22.0 bge0: interrupting at msi1 vec 0 bge0: HW config 002b1194, 00006014, 0002aa38, 00000000 0000000c bge0: ASIC BCM5720 A0 (0x5720000), Ethernet address d0:94:66:8b:9c:18 bge0: setting short Tx thresholds brgphy0 at bge0 phy 1: BCM5720C 1000BASE-T media interface, rev. 0 module: src subject: 'CVS commit: src/sys/dev/pci' unixtime: '1543346222' user: bouyer