> -----Original Message----- > From: Intel-wired-lan <[email protected]> On Behalf Of > Michal Kubiak > Sent: Friday, December 15, 2023 11:37 AM > To: [email protected] > Cc: Fijalkowski, Maciej <[email protected]>; Tantilov, Emil S > <[email protected]>; Zaremba, Larysa <[email protected]>; > [email protected]; Hay, Joshua A <[email protected]>; Lobakin, > Aleksander <[email protected]>; Kubiak, Michal > <[email protected]>; Brady, Alan <[email protected]>; Kitszel, > Przemyslaw <[email protected]> > Subject: [Intel-wired-lan] [PATCH iwl-net v2] idpf: enable WB_ON_ITR > > From: Joshua Hay <[email protected]> > > Tell hardware to write back completed descriptors even when interrupts > are disabled. Otherwise, descriptors might not be written back until > the hardware can flush a full cacheline of descriptors. This can cause > unnecessary delays when traffic is light (or even trigger Tx queue > timeout). > > The example scenario to reproduce the Tx timeout if the fix is not > applied: > - configure at least 2 Tx queues to be assigned to the same q_vector, > - generate a huge Tx traffic on the first Tx queue > - try to send a few packets using the second Tx queue. > In such a case Tx timeout will appear on the second Tx queue because no > completion descriptors are written back for that queue while interrupts > are disabled due to NAPI polling. > > The patch is necessary to start work on the AF_XDP implementation for > the idpf driver, because there may be a case where a regular LAN Tx > queue and an XDP queue share the same NAPI. > > Fixes: c2d548cad150 ("idpf: add TX splitq napi poll support") > Fixes: a5ab9ee0df0b ("idpf: add singleq start_xmit and napi poll") > Reviewed-by: Przemek Kitszel <[email protected]> > Reviewed-by: Alexander Lobakin <[email protected]> > Signed-off-by: Joshua Hay <[email protected]> > Co-developed-by: Michal Kubiak <[email protected]> > Signed-off-by: Michal Kubiak <[email protected]> > > --- > > v1 -> v2: > - reordered members of 'idpf_q_vector' to optimize the structure > layout in terms of cachelines, > - added kdocs for new structure members, > - added description of the example problem fixed by the patch, > - fixed a typo in the commit message ("writeback" -> "write > back"). > --- > drivers/net/ethernet/intel/idpf/idpf_dev.c | 2 ++ > .../ethernet/intel/idpf/idpf_singleq_txrx.c | 6 ++++- > drivers/net/ethernet/intel/idpf/idpf_txrx.c | 7 ++++- > drivers/net/ethernet/intel/idpf/idpf_txrx.h | 26 +++++++++++++++++++ > drivers/net/ethernet/intel/idpf/idpf_vf_dev.c | 2 ++ > 5 files changed, 41 insertions(+), 2 deletions(-)
During testing, when sending multiprotocol (udp/tcp/sctp) ipv4/6 traffic using 16+ netperf threads we are seeing tx timeouts with this patch after about 20m to 1h. The queues that hang appear to be random. Scott _______________________________________________ Intel-wired-lan mailing list [email protected] https://lists.osuosl.org/mailman/listinfo/intel-wired-lan
