Files
Andrew Gallatin 4b732459f0 iflib: Use a single tx dma map
The need for a separate map for TSO and non-TSO seems to have arisen from
a misunderstanding about the DMA requirements for Intel drivers like
ice/ixl/iavf. Specifically, this Intel hardware has a quirk where no
more than N (=8) segs can be DMA'ed per packet on the wire. This limit
was enforced using a DMA map with a low segment limit for non-TSO and a
driver specific check for TSO. This led to a *lot* of complexity in
iflib (~80 extra lines of code that this change removes) when the
limit can simply be enforced via the existing EFBIG mechanisms.

This change adds a new flag, IFLIB_SPARSE_TX, that drivers for hardware
with this quirk must set.  When set, it causes non-TSO sends that
exceed isc_tx_nsegment to be treated as if bus_dmamap_load_mbuf_sg()
had returned EFBIG.

Due to the API/KABI change, I've bumped the FreeBSD version as well.

Note kgalazka suggested the flag, rather than a more awkward
mechanism that I had in my initial patch.

Reviewed by: kbowling
Sponsored by: Netflix
Differential Revision:  https://reviews.freebsd.org/D60175
2026-11-05 11:55:28 -05:00
..
2023-11-26 22:23:30 -07:00
2025-12-18 08:46:20 -08:00
2026-10-19 10:32:00 -07:00
2026-10-19 10:32:00 -07:00
2026-10-19 10:32:00 -07:00
2026-03-15 00:41:29 -03:00
2025-01-17 17:00:08 +01:00
2026-10-16 14:16:59 -07:00
2026-10-19 10:32:00 -07:00
2026-10-19 10:32:00 -07:00
2026-10-19 10:32:00 -07:00
2026-10-19 10:32:00 -07:00
2026-04-12 10:26:08 -07:00
2026-10-19 10:32:00 -07:00
2025-12-08 09:20:56 -08:00
2025-12-08 09:20:56 -08:00
2023-11-26 22:23:30 -07:00
2026-10-16 14:08:36 -07:00
2026-10-19 10:32:00 -07:00
2026-11-02 11:35:19 -05:00
2026-10-16 14:16:59 -07:00
2025-07-28 16:36:54 +02:00
2026-10-19 10:32:00 -07:00
…
2026-10-19 10:32:00 -07:00
2026-10-19 10:32:00 -07:00
2026-10-19 10:32:00 -07:00
2026-10-16 14:16:59 -07:00
2026-11-05 11:55:28 -05:00
2026-11-05 11:55:28 -05:00
2023-11-26 22:23:30 -07:00
2023-11-26 22:23:30 -07:00
2026-10-13 09:08:18 -04:00
2026-10-16 14:16:59 -07:00
2026-10-30 13:21:11 +01:00
2023-11-26 22:23:30 -07:00
2026-10-16 14:16:59 -07:00
2023-12-27 20:24:32 -07:00
2026-10-16 14:16:59 -07:00
2026-07-29 00:24:24 +03:30
2026-10-19 10:32:00 -07:00