[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <CALuQH+XN5VBc3kMyWCRg8-=01gXWWkYbYEJLvCX==nhqSXxsCA@mail.gmail.com>
Date: Fri, 14 Feb 2025 14:43:10 -0800
From: Joshua Washington <joshwash@...gle.com>
To: netdev@...r.kernel.org
Cc: davem@...emloft.net, kuba@...nel.org, stable@...nel.org,
stable@...r.kernel.org, Praveen Kaligineedi <pkaligineedi@...gle.com>,
Jeroen de Borst <jeroendb@...gle.com>, Harshitha Ramamurthy <hramamurthy@...gle.com>,
Andrew Lunn <andrew+netdev@...n.ch>, Eric Dumazet <edumazet@...gle.com>,
Paolo Abeni <pabeni@...hat.com>, Alexei Starovoitov <ast@...nel.org>,
Daniel Borkmann <daniel@...earbox.net>, Jesper Dangaard Brouer <hawk@...nel.org>,
John Fastabend <john.fastabend@...il.com>, Willem de Bruijn <willemb@...gle.com>,
Ziwei Xiao <ziweixiao@...gle.com>, Shailend Chand <shailend@...gle.com>,
open list <linux-kernel@...r.kernel.org>,
"open list:XDP (eXpress Data Path):Keyword:(?:b|_)xdp(?:b|_)" <bpf@...r.kernel.org>
Subject: Re: [PATCH] gve: set xdp redirect target only when it is available
Hello,
This patch is meant to be destined to the net tree, I forgot to add
the prefix when generating the patch. Please disregard this patch; I
will post a new version soon.
My apologies,
Josh Washington
On Fri, Feb 14, 2025 at 2:38 PM <joshwash@...gle.com> wrote:
>
> From: Joshua Washington <joshwash@...gle.com>
>
> Before this patch the NETDEV_XDP_ACT_NDO_XMIT XDP feature flag is set by
> default as part of driver initialization, and is never cleared. However,
> this flag differs from others in that it is used as an indicator for
> whether the driver is ready to perform the ndo_xdp_xmit operation as
> part of an XDP_REDIRECT. Kernel helpers
> xdp_features_(set|clear)_redirect_target exist to convey this meaning.
>
> This patch ensures that the netdev is only reported as a redirect target
> when XDP queues exist to forward traffic.
>
> Fixes: 39a7f4aa3e4a ("gve: Add XDP REDIRECT support for GQI-QPL format")
> Cc: stable@...r.kernel.org
> Reviewed-by: Praveen Kaligineedi <pkaligineedi@...gle.com>
> Reviewed-by: Jeroen de Borst <jeroendb@...gle.com>
> Signed-off-by: Joshua Washington <joshwash@...gle.com>
> ---
> drivers/net/ethernet/google/gve/gve.h | 10 ++++++++++
> drivers/net/ethernet/google/gve/gve_main.c | 6 +++++-
> 2 files changed, 15 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/net/ethernet/google/gve/gve.h b/drivers/net/ethernet/google/gve/gve.h
> index 8167cc5fb0df..78d2a19593d1 100644
> --- a/drivers/net/ethernet/google/gve/gve.h
> +++ b/drivers/net/ethernet/google/gve/gve.h
> @@ -1116,6 +1116,16 @@ static inline u32 gve_xdp_tx_start_queue_id(struct gve_priv *priv)
> return gve_xdp_tx_queue_id(priv, 0);
> }
>
> +static inline bool gve_supports_xdp_xmit(struct gve_priv *priv)
> +{
> + switch (priv->queue_format) {
> + case GVE_GQI_QPL_FORMAT:
> + return true;
> + default:
> + return false;
> + }
> +}
> +
> /* gqi napi handler defined in gve_main.c */
> int gve_napi_poll(struct napi_struct *napi, int budget);
>
> diff --git a/drivers/net/ethernet/google/gve/gve_main.c b/drivers/net/ethernet/google/gve/gve_main.c
> index 533e659b15b3..92237fb0b60c 100644
> --- a/drivers/net/ethernet/google/gve/gve_main.c
> +++ b/drivers/net/ethernet/google/gve/gve_main.c
> @@ -1903,6 +1903,8 @@ static void gve_turndown(struct gve_priv *priv)
> /* Stop tx queues */
> netif_tx_disable(priv->dev);
>
> + xdp_features_clear_redirect_target(priv->dev);
> +
> gve_clear_napi_enabled(priv);
> gve_clear_report_stats(priv);
>
> @@ -1972,6 +1974,9 @@ static void gve_turnup(struct gve_priv *priv)
> napi_schedule(&block->napi);
> }
>
> + if (priv->num_xdp_queues && gve_supports_xdp_xmit(priv))
> + xdp_features_set_redirect_target(priv->dev, false);
> +
> gve_set_napi_enabled(priv);
> }
>
> @@ -2246,7 +2251,6 @@ static void gve_set_netdev_xdp_features(struct gve_priv *priv)
> if (priv->queue_format == GVE_GQI_QPL_FORMAT) {
> xdp_features = NETDEV_XDP_ACT_BASIC;
> xdp_features |= NETDEV_XDP_ACT_REDIRECT;
> - xdp_features |= NETDEV_XDP_ACT_NDO_XMIT;
> xdp_features |= NETDEV_XDP_ACT_XSK_ZEROCOPY;
> } else {
> xdp_features = 0;
> --
> 2.48.1.601.g30ceb7b040-goog
>
--
Joshua Washington | Software Engineer | joshwash@...gle.com | (414) 366-4423
Powered by blists - more mailing lists