[PATCH iwl-next v3 0/7] igc: harmonize queue priority and add preemptible queue support

From: Abdul Rahim, Faizal
Date: Mon May 19 2025 - 03:20:50 EST


From: Faizal Rahim <faizal.abdul.rahim@xxxxxxxxxxxxxxx>

MAC Merge support for frame preemption was previously added for igc:
https://patchwork.kernel.org/project/netdevbpf/patch/20250318030742.2567080-1-faizal.abdul.rahim@xxxxxxxxxxxxxxx/

This series builds on that work and adds support for:
- Harmonizing taprio and mqprio queue priority behavior, based on past
discussions and suggestions:
https://lore.kernel.org/all/20250214102206.25dqgut5tbak2rkz@skbuf/
- Enabling preemptible queue support for both taprio and mqprio, with
priority harmonization as a prerequisite.

Patch organization:
- Patches 1–3: Preparation work for patches 6 and 7
- Patches 4–5: Queue priority harmonization
- Patches 6–7: Add preemptible queue support

v3 changes:
- v2: https://patchwork.kernel.org/project/netdevbpf/cover/20250514042945.2685273-1-faizal.abdul.rahim@xxxxxxxxxxxxxxx/
- Patch 8 fixes a HW limitation and should precede preemption support. Merged into patch 6. (Simon)
- Add Reviewed-by tag from Simon for patch 1-5

v2 changes:
- v1: https://patchwork.kernel.org/project/netdevbpf/cover/20250428060225.1306986-1-faizal.abdul.rahim@xxxxxxxxxxxxxxx/
- Move RXDCTL macros for consistency with TXDCTL (Ruinskiy, Dima)
- Rename RX descriptor control macros with RXDCTL prefix (Ruinskiy, Dima)
- Add FPE acronym explanation in commit description (Loktionov, Aleksandr)
- Add Reviewed-by tag from Aleksandr for patch 6

Faizal Rahim (7):
igc: move TXDCTL and RXDCTL related macros
igc: add DCTL prefix to related macros
igc: refactor TXDCTL macros to use FIELD_PREP and GEN_MASK
igc: assign highest TX queue number as highest priority in mqprio
igc: add private flag to reverse TX queue priority in TSN mode
igc: add preemptible queue support in taprio
igc: add preemptible queue support in mqprio

drivers/net/ethernet/intel/igc/igc.h | 33 +++++-
drivers/net/ethernet/intel/igc/igc_base.h | 8 --
drivers/net/ethernet/intel/igc/igc_defines.h | 1 +
drivers/net/ethernet/intel/igc/igc_ethtool.c | 12 +-
drivers/net/ethernet/intel/igc/igc_main.c | 56 ++++++---
drivers/net/ethernet/intel/igc/igc_tsn.c | 116 ++++++++++++++++---
drivers/net/ethernet/intel/igc/igc_tsn.h | 5 +
7 files changed, 188 insertions(+), 43 deletions(-)

--
2.34.1