netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [Intel-wired-lan] [PATCH iwl-net v3 0/6] idpf: replace Tx flow scheduling buffer ring with buffer pool
@ 2025-07-25 18:42 Joshua Hay
  2025-07-25 18:42 ` [Intel-wired-lan] [PATCH iwl-net v3 1/6] idpf: add support for Tx refillqs in flow scheduling mode Joshua Hay
                   ` (5 more replies)
  0 siblings, 6 replies; 20+ messages in thread
From: Joshua Hay @ 2025-07-25 18:42 UTC (permalink / raw)
  To: intel-wired-lan; +Cc: netdev, Joshua Hay

This series fixes a stability issue in the flow scheduling Tx send/clean
path that results in a Tx timeout.

The existing guardrails in the Tx path were not sufficient to prevent
the driver from reusing completion tags that were still in flight (held
by the HW).  This collision would cause the driver to erroneously clean
the wrong packet thus leaving the descriptor ring in a bad state.

The main point of this fix is to replace the flow scheduling buffer ring
with a large pool/array of buffers.  The completion tag then simply is
the index into this array.  The driver tracks the free tags and pulls
the next free one from a refillq.  The cleaning routines simply use the
completion tag from the completion descriptor to index into the array to
quickly find the buffers to clean.

All of the code to support the refactor is added first to ensure traffic
still passes with each patch.  The final patch then removes all of the
obsolete stashing code.

---
v3:
- Remove unreachable code in patch 4
- Update comment format

v2:
https://lore.kernel.org/intel-wired-lan/20250718002150.2724409-1-joshua.a.hay@intel.com/T/#t

v1:
https://lore.kernel.org/intel-wired-lan/c6444d15-bc20-41a8-9230-9bb266cb2ac6@molgen.mpg.de/T/#maf9f464c598951ee860e5dd24ef8a451a488c5a0


Joshua Hay (6):
  idpf: add support for Tx refillqs in flow scheduling mode
  idpf: improve when to set RE bit logic
  idpf: simplify and fix splitq Tx packet rollback error path
  idpf: replace flow scheduling buffer ring with buffer pool
  idpf: stop Tx if there are insufficient buffer resources
  idpf: remove obsolete stashing code

 .../ethernet/intel/idpf/idpf_singleq_txrx.c   |  61 +-
 drivers/net/ethernet/intel/idpf/idpf_txrx.c   | 722 +++++++-----------
 drivers/net/ethernet/intel/idpf/idpf_txrx.h   |  87 +--
 3 files changed, 355 insertions(+), 515 deletions(-)

-- 
2.39.2


^ permalink raw reply	[flat|nested] 20+ messages in thread

end of thread, other threads:[~2025-08-12 16:45 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-07-25 18:42 [Intel-wired-lan] [PATCH iwl-net v3 0/6] idpf: replace Tx flow scheduling buffer ring with buffer pool Joshua Hay
2025-07-25 18:42 ` [Intel-wired-lan] [PATCH iwl-net v3 1/6] idpf: add support for Tx refillqs in flow scheduling mode Joshua Hay
2025-07-28 17:06   ` Paul Menzel
2025-07-29 17:15     ` Hay, Joshua A
2025-07-29 22:53       ` Paul Menzel
2025-07-31 21:08         ` Hay, Joshua A
2025-08-12 16:45   ` Salin, Samuel
2025-07-25 18:42 ` [Intel-wired-lan] [PATCH iwl-net v3 2/6] idpf: improve when to set RE bit logic Joshua Hay
2025-08-12 16:45   ` Salin, Samuel
2025-07-25 18:42 ` [Intel-wired-lan] [PATCH iwl-net v3 3/6] idpf: simplify and fix splitq Tx packet rollback error path Joshua Hay
2025-08-12 16:45   ` Salin, Samuel
2025-07-25 18:42 ` [Intel-wired-lan] [PATCH iwl-net v3 4/6] idpf: replace flow scheduling buffer ring with buffer pool Joshua Hay
2025-08-04 17:02   ` Alexander Lobakin
2025-08-05 22:40     ` Hay, Joshua A
2025-08-12 16:45   ` Salin, Samuel
2025-07-25 18:42 ` [Intel-wired-lan] [PATCH iwl-net v3 5/6] idpf: stop Tx if there are insufficient buffer resources Joshua Hay
2025-08-12 16:45   ` Salin, Samuel
2025-07-25 18:42 ` [Intel-wired-lan] [PATCH iwl-net v3 6/6] idpf: remove obsolete stashing code Joshua Hay
2025-07-28  9:04   ` Loktionov, Aleksandr
2025-08-12 16:45   ` Salin, Samuel

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).