mbox series

[v2,iwl-net,0/8] ice: fix AF_XDP ZC timeout and concurrency issues

Message ID 20240529112337.3639084-1-maciej.fijalkowski@intel.com (mailing list archive)
Headers show
Series ice: fix AF_XDP ZC timeout and concurrency issues | expand

Message

Fijalkowski, Maciej May 29, 2024, 11:23 a.m. UTC
Hi,

changes included in this patchset address an issue that customer has
been facing when AF_XDP ZC Tx sockets were used in combination with flow
control and regular Tx traffic.

After executing:
ethtool --set-priv-flags $dev link-down-on-close on
ethtool -A $dev rx on tx on

launching multiple ZC Tx sockets on $dev + pinging remote interface (so
that regular Tx traffic is present) and then going through down/up of
$dev, Tx timeout occured and then most of the time ice driver was unable
to recover from that state.

These patches combined together solve the described above issue on
customer side. Main focus here is to forbid producing Tx descriptors
when either carrier is not yet initialized or process of bringing
interface down has already started.

Thanks,
Maciej

v1->v2:
- fix kdoc issues in patch 6 and 8
- drop Larysa's patches for now


Maciej Fijalkowski (7):
  ice: don't busy wait for Rx queue disable in ice_qp_dis()
  ice: replace synchronize_rcu with synchronize_net
  ice: modify error handling when setting XSK pool in ndo_bpf
  ice: toggle netif_carrier when setting up XSK pool
  ice: improve updating ice_{t,r}x_ring::xsk_pool
  ice: add missing WRITE_ONCE when clearing ice_rx_ring::xdp_prog
  ice: xsk: fix txq interrupt mapping

Michal Kubiak (1):
  ice: respect netif readiness in AF_XDP ZC related ndo's

 drivers/net/ethernet/intel/ice/ice.h      |   6 +-
 drivers/net/ethernet/intel/ice/ice_base.c |   4 +-
 drivers/net/ethernet/intel/ice/ice_main.c |   2 +-
 drivers/net/ethernet/intel/ice/ice_txrx.c |   6 +-
 drivers/net/ethernet/intel/ice/ice_xsk.c  | 150 +++++++++++++---------
 drivers/net/ethernet/intel/ice/ice_xsk.h  |   4 +-
 6 files changed, 101 insertions(+), 71 deletions(-)

Comments

Nelson, Shannon May 31, 2024, 11:52 p.m. UTC | #1
On 5/29/2024 4:23 AM, Maciej Fijalkowski wrote:
> 
> Hi,
> 
> changes included in this patchset address an issue that customer has
> been facing when AF_XDP ZC Tx sockets were used in combination with flow
> control and regular Tx traffic.
> 
> After executing:
> ethtool --set-priv-flags $dev link-down-on-close on
> ethtool -A $dev rx on tx on
> 
> launching multiple ZC Tx sockets on $dev + pinging remote interface (so
> that regular Tx traffic is present) and then going through down/up of
> $dev, Tx timeout occured and then most of the time ice driver was unable
> to recover from that state.
> 
> These patches combined together solve the described above issue on
> customer side. Main focus here is to forbid producing Tx descriptors
> when either carrier is not yet initialized or process of bringing
> interface down has already started.
> 
> Thanks,
> Maciej
> 
> v1->v2:
> - fix kdoc issues in patch 6 and 8
> - drop Larysa's patches for now
> 
> 
> Maciej Fijalkowski (7):
>    ice: don't busy wait for Rx queue disable in ice_qp_dis()
>    ice: replace synchronize_rcu with synchronize_net
>    ice: modify error handling when setting XSK pool in ndo_bpf
>    ice: toggle netif_carrier when setting up XSK pool
>    ice: improve updating ice_{t,r}x_ring::xsk_pool
>    ice: add missing WRITE_ONCE when clearing ice_rx_ring::xdp_prog
>    ice: xsk: fix txq interrupt mapping
> 
> Michal Kubiak (1):
>    ice: respect netif readiness in AF_XDP ZC related ndo's

Aside from a couple minor notes, these seem reasonable.

For the set:
Reviewed-by: Shannon Nelson <shannon.nelson@amd.com>

> 
>   drivers/net/ethernet/intel/ice/ice.h      |   6 +-
>   drivers/net/ethernet/intel/ice/ice_base.c |   4 +-
>   drivers/net/ethernet/intel/ice/ice_main.c |   2 +-
>   drivers/net/ethernet/intel/ice/ice_txrx.c |   6 +-
>   drivers/net/ethernet/intel/ice/ice_xsk.c  | 150 +++++++++++++---------
>   drivers/net/ethernet/intel/ice/ice_xsk.h  |   4 +-
>   6 files changed, 101 insertions(+), 71 deletions(-)
> 
> --
> 2.34.1
> 
>