Re: CFT: lem(4), em(4) e1000 Ethernet TSO testing
- In reply to: Kevin Bowling : "CFT: lem(4), em(4) e1000 Ethernet TSO testing"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Wed, 26 Jul 2023 09:33:23 UTC
On Tue, Jul 25, 2023 at 07:38:29PM -0700, Kevin Bowling wrote: > Hi, > > I have been working through various bugs and have come to a point > where TSO is working on systems I have available for testing. > > This results in higher throughput on resource constrained systems, and > less CPU/power usage on unconstrained systems. > > As of this mail, you will need to manually apply > https://reviews.freebsd.org/D41170 on top of main to use TSO6 on > em(4). > > I plan to enable TSO by default for lem(4) and em(4) during the > FreeBSD 14 release cycle, so I would appreciate testing to address any > remaining issues. Below, a list of chipsets that will be exempt due > to known issues. > > lem(4) exclusions: > * <82544 (although it does seem ok to manually enable for emulations > in qemu, virtualbox, etc) > * 82547 > > em(4) exclusions.. These chips have a stability workaround for high > throughput with rapid link-flap applied that results in the TSO engine > not being able to run at line speed. Thus, TSO would not be enabled > by default here: > * Intel(R) I219-LM and I219-V > * Intel(R) I219-LM and I219-V (2) > * Intel(R) I219-LM and I219-V (3) > * Intel(R) I219-LM and I219-V (4) > * Intel(R) I219-LM and I219-V (5) In the past, at least for 82579 TSO4 didn't work at all, causing MAC hangs. For devices like 82573E in turn TSO4 only worked at GbE speed. Thus, b1b6afa587761c5d56b0a5410a2a8ea9c2248a57 would automatically disable TSO4 based on actual link speed if needed but that code was lost with the conversion to iflib(9). Thus, given the amount of chips supported, uncertainty whether all required workarounds are actually in place, oddities such as lower link speeds causing problems for TSO, the general mediocre benefit of TSO at GbE and below and the fact that you only have tested TSO with a limited amount of real hardware accroding to D41170, I still don't think it's a good idea to enable TSO by default for EM- and LEM-class gear, especially _not_ during a release cycle. At most, TSO should be whitelisted for specific, thoroughly tested PCI IDs but not the entire classes. Marius