Files
freebsd-src/sys/dev
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
..
2026-09-18 16:09:32 -07:00
2025-11-26 23:19:26 -07:00
2026-10-09 23:07:02 +01:00
2026-11-04 13:20:40 +01:00
2024-06-16 16:37:25 -04:00
2026-09-18 14:53:39 -07:00
2026-09-30 14:41:12 +01:00
2026-11-02 18:31:51 +00:00
2026-09-18 16:10:30 -07:00
2026-09-21 19:43:31 -03:00
2025-06-11 17:39:02 +01:00
2025-08-13 14:14:00 +03:00
2024-01-10 19:20:26 +01:00
2026-07-13 16:40:42 -03:00
2026-10-20 15:30:38 +00:00
2026-11-05 11:55:28 -05:00
2023-11-26 22:23:30 -07:00
2026-11-05 11:55:28 -05:00
2025-06-11 17:39:02 +01:00
2026-01-12 00:58:11 +00:00
2023-12-28 13:31:56 -05:00
2026-11-05 11:55:28 -05:00
2026-01-12 00:58:11 +00:00
2025-07-05 11:35:53 +03:00
2026-10-13 19:36:17 +01:00
2026-09-18 14:53:39 -07:00
2025-08-13 14:14:00 +03:00
2024-01-10 19:20:31 +01:00
2026-10-28 13:06:58 +00:00
2025-08-13 14:14:00 +03:00
2024-01-10 19:20:34 +01:00
2025-06-11 17:39:02 +01:00
2026-05-12 17:54:40 +01:00
2026-02-17 15:45:13 -05:00
2026-10-30 18:41:13 -07:00
2025-08-13 14:14:00 +03:00
2026-10-13 18:31:50 +02:00
2025-06-11 17:39:02 +01:00
2025-11-07 15:23:42 -08:00
2026-02-17 15:45:13 -05:00
2024-11-04 20:31:16 -05:00
2024-06-16 16:37:26 -04:00
2026-10-20 09:34:03 -05:00