>-----Original Message-----
>From: Intel-wired-lan <[email protected]> On Behalf Of
>Fijalkowski, Maciej
>Sent: Wednesday, May 29, 2024 4:54 PM
>To: [email protected]
>Cc: Fijalkowski, Maciej <[email protected]>; Zaremba, Larysa
><[email protected]>; [email protected]; Kubiak, Michal
><[email protected]>; Nguyen, Anthony L
><[email protected]>; Karlsson, Magnus
><[email protected]>
>Subject: [Intel-wired-lan] [PATCH v2 iwl-net 1/8] ice: respect netif readiness
>in
>AF_XDP ZC related ndo's
>
>From: Michal Kubiak <[email protected]>
>
>Address a scenario in which XSK ZC Tx produces descriptors to XDP Tx ring
>when link is either not yet fully initialized or process of stopping the
>netdev has
>already started. To avoid this, add checks against carrier readiness in
>ice_xsk_wakeup() and in ice_xmit_zc().
>One could argue that bailing out early in ice_xsk_wakeup() would be sufficient
>but given the fact that we produce Tx descriptors on behalf of NAPI that is
>triggered for Rx traffic, the latter is also needed.
>
>Bringing link up is an asynchronous event executed within ice_service_task so
>even though interface has been brought up there is still a time frame where
>link
>is not yet ok.
>
>Without this patch, when AF_XDP ZC Tx is used simultaneously with stack Tx, Tx
>timeouts occur after going through link flap (admin brings interface down then
>up again). HW seem to be unable to transmit descriptor to the wire after HW
>tail register bump which in turn causes bit __QUEUE_STATE_STACK_XOFF to be
>set forever as
>netdev_tx_completed_queue() sees no cleaned bytes on the input.
>
>Fixes: 126cdfe1007a ("ice: xsk: Improve AF_XDP ZC Tx and use batching API")
>Fixes: 2d4238f55697 ("ice: Add support for AF_XDP")
>Signed-off-by: Michal Kubiak <[email protected]>
>Signed-off-by: Maciej Fijalkowski <[email protected]>
>---
> drivers/net/ethernet/intel/ice/ice_xsk.c | 6 +++++-
> 1 file changed, 5 insertions(+), 1 deletion(-)
>
Tested-by: Chandan Kumar Rout <[email protected]> (A Contingent Worker at
Intel)