[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20220405113403.3528655-1-alexandr.lobakin@intel.com>
Date: Tue, 5 Apr 2022 13:34:03 +0200
From: Alexander Lobakin <alexandr.lobakin@...el.com>
To: Maciej Fijalkowski <maciej.fijalkowski@...el.com>
Cc: Alexander Lobakin <alexandr.lobakin@...el.com>,
bpf@...r.kernel.org, ast@...nel.org, daniel@...earbox.net,
magnus.karlsson@...el.com, bjorn@...nel.org,
netdev@...r.kernel.org, brouer@...hat.com, maximmi@...dia.com
Subject: Re: [PATCH bpf-next 03/10] ice: xsk: terminate NAPI when XSK Rx queue gets full
From: Maciej Fijalkowski <maciej.fijalkowski@...el.com>
Date: Tue, 5 Apr 2022 13:06:24 +0200
> Correlate -ENOBUFS that was returned from xdp_do_redirect() with a XSK
> Rx queue being full. In such case, terminate the softirq processing and
> let the user space to consume descriptors from XSK Rx queue so that
> there is room that driver can use later on.
>
> Signed-off-by: Maciej Fijalkowski <maciej.fijalkowski@...el.com>
> ---
> drivers/net/ethernet/intel/ice/ice_txrx.h | 1 +
> drivers/net/ethernet/intel/ice/ice_xsk.c | 25 +++++++++++++++--------
> 2 files changed, 17 insertions(+), 9 deletions(-)
--- 8< ---
> @@ -551,15 +552,15 @@ ice_run_xdp_zc(struct ice_rx_ring *rx_ring, struct xdp_buff *xdp,
> if (result == ICE_XDP_CONSUMED)
> goto out_failure;
> break;
> + case XDP_DROP:
> + result = ICE_XDP_CONSUMED;
> + break;
> default:
> bpf_warn_invalid_xdp_action(rx_ring->netdev, xdp_prog, act);
> fallthrough;
> case XDP_ABORTED:
> out_failure:
> trace_xdp_exception(rx_ring->netdev, xdp_prog, act);
> - fallthrough;
> - case XDP_DROP:
> - result = ICE_XDP_CONSUMED;
> break;
So the result for %XDP_ABORTED will be %ICE_XDP_PASS now? Or I'm
missing something :s
> }
>
> @@ -628,10 +629,16 @@ int ice_clean_rx_irq_zc(struct ice_rx_ring *rx_ring, int budget)
--- 8< ---
> --
> 2.33.1
Thanks,
Al
Powered by blists - more mailing lists