Thread (10 messages) 10 messages, 3 authors, 2025-09-26

Re: [PATCH RFC 0/4] Add XDP RX queue index metadata via kfuncs

From: Stanislav Fomichev <hidden>
Date: 2025-09-24 22:31:35
Also in: bpf, linux-kernel-mentees, lkml

On 09/24, Mehdi Ben Hadj Khelifa wrote:
On 9/23/25 9:45 PM, Stanislav Fomichev wrote:
quoted
On 09/23, Mehdi Ben Hadj Khelifa wrote:
quoted
---
Mehdi Ben Hadj Khelifa (4):
   netlink: specs: Add XDP RX queue index to XDP metadata
   net: xdp: Add xmo_rx_queue_index callback
   uapi: netdev: Add XDP RX queue index metadata flags
   net: veth: Implement RX queue index XDP hint

  Documentation/netlink/specs/netdev.yaml |  5 +++++
  drivers/net/veth.c                      | 12 ++++++++++++
  include/net/xdp.h                       |  5 +++++
  include/uapi/linux/netdev.h             |  3 +++
  net/core/xdp.c                          | 15 +++++++++++++++
  tools/include/uapi/linux/netdev.h       |  3 +++
  6 files changed, 43 insertions(+)
  ---
  base-commit: 07e27ad16399afcd693be20211b0dfae63e0615f
  this is the commit of tag: v6.17-rc7 on the mainline.
  This patch series is intended to make a base for setting
  queue_index in the xdp_rxq_info struct in bpf/cpumap.c to
  the right index. Although that part I still didn't figure
  out yet,I m searching for my guidance to do that as well
  as for the correctness of the patches in this series.
quoted
But why do you need a kfunc getter? You can already get rxq index
via xdp_md rx_queue_index.
Hi Stanislav, When i was looking at the available information or recent
similar patches to populate the queue_index in xdp_rxq_info inside of
the cpu map of an ebpf program to run xdp. i stumbled upon this:
https://lkml.rescloud.iu.edu/2506.1/02808.html

which suggests that in order to that, a struct called "xdp_rx_meta" should
be the route to do that. In my navigation of code i only found
the closest thing to that is xdp_rx_metadata which is an enum. I tried to
follow was done for other metadata there like timestamp in order to see if
that gets me closer to do that. which was stupid with the information that i
have now but for my lack of experience (this is my first patch) i tried to
reason with the code.So yeah, since xdp_md is the structure for transfering
metadata to ebpf programs that use xdp. it's useless to have a kfunc to
expose queue_index since it's already present there. But how would one try
to populate the queue_index in xdp_rxq_info in cpu_map_bpf_prog_run_xdp()?
Any sort of hints or guides would be much appreciated.
Thank you for your time.
I don't really understand what queue_index means for the cpu map. It is
a kernel thread doing work, there is no queue. Maybe whoever added
the todo can clarify?
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help