* [PATCH net-next v3 0/2] XDP metadata support for DQ RDA
@ 2026-07-22 22:16 Joshua Washington
2026-07-22 22:16 ` [PATCH net-next v3 1/2] gve: use xdp_build_skb methods for XDP_PASS case Joshua Washington
2026-07-22 22:16 ` [PATCH net-next v3 2/2] gve: add XDP metadata support for DQ RDA Joshua Washington
0 siblings, 2 replies; 3+ messages in thread
From: Joshua Washington @ 2026-07-22 22:16 UTC (permalink / raw)
To: netdev
Cc: Joshua Washington, Harshitha Ramamurthy, Andrew Lunn,
David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
Alexei Starovoitov, Daniel Borkmann, Jesper Dangaard Brouer,
John Fastabend, Stanislav Fomichev, Jordan Rhee, Tim Hostetler,
Ankit Garg, linux-kernel, bpf
This small series enables XDP metadata support in DQ RDA mode. While
space is reserved in the headroom for metadata and the DQ queue format
supports the xmo_rx_timestamp metadata operation, support for adjusting
the metadata and passing metadata along to SKBs was not actually
implemented.
v3:
- Make use of xdp_build_skb methods to implicitly pass on metadata
when constructing SKBs from XDP buffs.
- v2: https://lore.kernel.org/netdev/20260318192450.3400774-1-joshwash@google.com/
v2:
- Fix referenced commit hash
- v1: https://lore.kernel.org/netdev/20260316230434.1398828-1-joshwash@google.com/
Joshua Washington (2):
gve: use xdp_build_skb methods for XDP_PASS case
gve: add XDP metadata support for DQ RDA
drivers/net/ethernet/google/gve/gve_rx_dqo.c | 15 ++++++++++-----
1 file changed, 10 insertions(+), 5 deletions(-)
--
2.55.0.229.g6434b31f56-goog
^ permalink raw reply [flat|nested] 3+ messages in thread
* [PATCH net-next v3 1/2] gve: use xdp_build_skb methods for XDP_PASS case
2026-07-22 22:16 [PATCH net-next v3 0/2] XDP metadata support for DQ RDA Joshua Washington
@ 2026-07-22 22:16 ` Joshua Washington
2026-07-22 22:16 ` [PATCH net-next v3 2/2] gve: add XDP metadata support for DQ RDA Joshua Washington
1 sibling, 0 replies; 3+ messages in thread
From: Joshua Washington @ 2026-07-22 22:16 UTC (permalink / raw)
To: netdev
Cc: Joshua Washington, Harshitha Ramamurthy, Andrew Lunn,
David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
Alexei Starovoitov, Daniel Borkmann, Jesper Dangaard Brouer,
John Fastabend, Stanislav Fomichev, Jordan Rhee, Tim Hostetler,
Ankit Garg, linux-kernel, bpf
Newer common methods have been introduced to construct SKBs in the
event of XDP_PASS because many drivers replicated very similar
functionality. Update GVE to use these common methods for copy mode and
zero-copy mode.
Reviewed-by: Harshitha Ramamurthy <hramamurthy@google.com>
Reviewed-by: Jordan Rhee <jordanrhee@google.com>
Signed-off-by: Joshua Washington <joshwash@google.com>
---
v3:
- Newly introduced. Ensures that XDP metadata is passed onto SKB in
XDP_PASS case.
---
drivers/net/ethernet/google/gve/gve_rx_dqo.c | 13 +++++++++----
1 file changed, 9 insertions(+), 4 deletions(-)
diff --git a/drivers/net/ethernet/google/gve/gve_rx_dqo.c b/drivers/net/ethernet/google/gve/gve_rx_dqo.c
index 02cba280d81a..907a0c15bf30 100644
--- a/drivers/net/ethernet/google/gve/gve_rx_dqo.c
+++ b/drivers/net/ethernet/google/gve/gve_rx_dqo.c
@@ -736,8 +736,7 @@ static int gve_rx_xsk_dqo(struct napi_struct *napi, struct gve_rx_ring *rx,
}
/* Copy the data to skb */
- rx->ctx.skb_head = gve_rx_copy_data(priv->dev, napi,
- xdp->data, buf_len);
+ rx->ctx.skb_head = xdp_build_skb_from_zc(xdp);
if (unlikely(!rx->ctx.skb_head)) {
xsk_buff_free(xdp);
gve_free_buf_state(rx, buf_state);
@@ -745,8 +744,6 @@ static int gve_rx_xsk_dqo(struct napi_struct *napi, struct gve_rx_ring *rx,
}
rx->ctx.skb_tail = rx->ctx.skb_head;
- /* Free XSK buffer and Buffer state */
- xsk_buff_free(xdp);
gve_free_buf_state(rx, buf_state);
/* Update Stats */
@@ -899,9 +896,17 @@ static int gve_rx_dqo(struct napi_struct *napi, struct gve_rx_ring *rx,
return 0;
}
+ rx->ctx.skb_head = xdp_build_skb_from_buff(&gve_xdp.xdp);
+ if (unlikely(!rx->ctx.skb_head))
+ goto error;
+ rx->ctx.skb_tail = rx->ctx.skb_head;
+
+ gve_reuse_buffer(rx, buf_state);
+
u64_stats_update_begin(&rx->statss);
rx->xdp_actions[XDP_PASS]++;
u64_stats_update_end(&rx->statss);
+ return 0;
}
if (eop && buf_len <= priv->rx_copybreak &&
--
2.55.0.229.g6434b31f56-goog
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [PATCH net-next v3 2/2] gve: add XDP metadata support for DQ RDA
2026-07-22 22:16 [PATCH net-next v3 0/2] XDP metadata support for DQ RDA Joshua Washington
2026-07-22 22:16 ` [PATCH net-next v3 1/2] gve: use xdp_build_skb methods for XDP_PASS case Joshua Washington
@ 2026-07-22 22:16 ` Joshua Washington
1 sibling, 0 replies; 3+ messages in thread
From: Joshua Washington @ 2026-07-22 22:16 UTC (permalink / raw)
To: netdev
Cc: Joshua Washington, Harshitha Ramamurthy, Andrew Lunn,
David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
Alexei Starovoitov, Daniel Borkmann, Jesper Dangaard Brouer,
John Fastabend, Stanislav Fomichev, Jordan Rhee, Tim Hostetler,
Ankit Garg, linux-kernel, bpf
Commit 1b42e07af1ee ("gve: Add Rx HWTS metadata to AF_XDP ZC mode")
exposes support for the XDP RX timestamping metadata operation in the DQ
RDA mode. While the operation works on its own, the intent was to enable
XDP metadata support for the queue format as a whole along with it.
Currently bpf_xdp_adjust_meta fails because meta_valid is set to false.
This change updates xdp_buff preparation to set meta_valid to true, so
metadata can be fully used by XDP programs.
Reviewed-by: Harshitha Ramamurthy <hramamurthy@google.com>
Reviewed-by: Jordan Rhee <jordanrhee@google.com>
Signed-off-by: Joshua Washington <joshwash@google.com>
---
v3:
- bfp -> bpf
v2:
- Fix referenced commit in description
---
drivers/net/ethernet/google/gve/gve_rx_dqo.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/google/gve/gve_rx_dqo.c b/drivers/net/ethernet/google/gve/gve_rx_dqo.c
index 907a0c15bf30..329a2585489b 100644
--- a/drivers/net/ethernet/google/gve/gve_rx_dqo.c
+++ b/drivers/net/ethernet/google/gve/gve_rx_dqo.c
@@ -882,7 +882,7 @@ static int gve_rx_dqo(struct napi_struct *napi, struct gve_rx_ring *rx,
buf_state->page_info.page_address +
buf_state->page_info.page_offset,
buf_state->page_info.pad,
- buf_len, false);
+ buf_len, true);
gve_xdp.gve = priv;
gve_xdp.compl_desc = compl_desc;
--
2.55.0.229.g6434b31f56-goog
^ permalink raw reply related [flat|nested] 3+ messages in thread
end of thread, other threads:[~2026-07-22 22:16 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-22 22:16 [PATCH net-next v3 0/2] XDP metadata support for DQ RDA Joshua Washington
2026-07-22 22:16 ` [PATCH net-next v3 1/2] gve: use xdp_build_skb methods for XDP_PASS case Joshua Washington
2026-07-22 22:16 ` [PATCH net-next v3 2/2] gve: add XDP metadata support for DQ RDA Joshua Washington
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox