> -----Original Message----- > From: Intel-wired-lan <[email protected]> On Behalf Of > Joshua Hay > Sent: Tuesday, June 30, 2026 4:56 PM > To: [email protected] > Cc: [email protected] > Subject: [Intel-wired-lan] [PATCH iwl-net] idpf: adjust TxQ ring count > minimum > > Set the TxQ ring count minimum to 128 descriptors. Any lower than this, and > the queue will stall and trigger Tx timeouts in flow based scheduling mode. > This is because next_to_clean might never be updated. > > In flow based scheduling mode, next_to_clean is only updated after a > descriptor completion is processed, i.e. after the RE bit is set in the last > descriptor of a Tx packet. This will never happen with a ring size of 64 and > an > IDPF_TX_SPLITQ_RE_MIN_GAP of 64. No matter what the value of last_re is > initialized/set to, the calculated gap will be at most 63 and never trigger > the RE > bit. > > Even a ring size of 96 does not solve this. Because of how infrequent > next_to_clean is updated and how small the ring is, IDPF_DESC_UNUSED will > be much smaller on average. This increases the chance the queue will be > stopped because a multi-descriptor packet, e.g. a large LSO packet, does not > see enough resources on the ring. In this case, the queue will trigger the > stop > logic. The queue permanently stalls because there is no chance for a > descriptor > completion to update next_to_clean since it is dependent on a packet being > sent. > > Fixes: 5f417d551324 ("idpf: replace flow scheduling buffer ring with buffer > pool") > Signed-off-by: Joshua Hay <[email protected]> > Reviewed-by: Aleksandr Loktionov <[email protected]> > --- > 2.39.2
Tested-by: Samuel Salin <[email protected]>
