libeth_xdpsq_lock(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… libeth_xdpsq_lock(9) β€” Kernel API Manual energy

okay bestie, welcome to the libeth_xdpsq_lock(9) page β€” yes it's a section 9 kernel API manual, yes we're gonna make it cute, and no we are not skipping a single line of it. grab a boba, this one's short but iconic πŸŽ€


✨ NAME ✨

libeth_xdpsq_lock β€” grab &libeth_xdpsq_lock if needed 🫢

like, only if needed, that's the whole personality of this function ngl


🌸 SYNOPSIS 🌸

void libeth_xdpsq_lock (struct libeth_xdpsq_lock *lock );

that's it. one argument. she's lowkey minimal and we respect it πŸ’…


πŸ¦‹ ARGUMENTS πŸ¦‹

  • lock β€” the lock to take, bestie. this is literally the thing you're grabbing πŸ’–

πŸ‘‘ DESCRIPTION πŸ‘‘

so here's the vibe check: this function touches the underlying spinlock β€” only if the static key is enabled and the queue itself is marked as shareable. πŸ”₯

read that again, because it's the whole tea:

  1. static key enabled? βœ… β†’ keep going
  2. queue marked shareable? βœ… β†’ now we touch the underlying spinlock
  3. either one is a no? β†’ we do not touch it, periodt πŸ’€

it's giving "conditional main character energy" and honestly? slay 🌈


πŸ’œ SEE ALSO πŸ’œ

okay this list is LONG, but bestie we do not gatekeep and we do not skip. everything below is exactly what's in the kernel file ./include/net/libeth/xdp.h β€” yes, the kernel file ./include/net/libeth/xdp.h, she's the source of truth 🧚

  • struct libeth_xdp_buff(9)
  • __LIBETH_XDP_ONSTACK_BUFF(9)
  • LIBETH_XDP_ONSTACK_BUFF(9)
  • libeth_xdpsq_num(9)
  • libeth_xdpsq_shared(9)
  • libeth_xdpsq_id(9)
  • libeth_xdpsq_get(9)
  • libeth_xdpsq_put(9)
  • libeth_xdpsq_unlock(9)
  • libeth_xdpsq_deinit_timer(9)
  • libeth_xdpsq_queue_timer(9)
  • libeth_xdpsq_run_timer(9)
  • enum (anonymous)(9)
  • enum (anonymous)(9)
  • struct libeth_xdp_tx_frame(9)
  • struct libeth_xdp_tx_bulk(9)
  • LIBETH_XDP_ONSTACK_BULK(9)
  • struct libeth_xdpsq(9)
  • struct libeth_xdp_tx_desc(9)
  • libeth_xdp_ptr_to_priv(9)
  • libeth_xdp_priv_to_ptr(9)
  • libeth_xdp_tx_xmit_bulk(9)
  • libeth_xdp_tx_queue_head(9)
  • libeth_xdp_tx_queue_frag(9)
  • libeth_xdp_tx_queue_bulk(9)
  • libeth_xdp_tx_fill_stats(9)
  • libeth_xdp_tx_fill_buf(9)
  • __libeth_xdp_tx_flush_bulk(9)
  • libeth_xdp_tx_flush_bulk(9)
  • libeth_xdp_xmit_init_bulk(9)
  • libeth_xdp_xmit_frame_dma(9)
  • libeth_xdp_xmit_queue_head(9)
  • libeth_xdp_xmit_queue_frag(9)
  • libeth_xdp_xmit_queue_bulk(9)
  • libeth_xdp_xmit_fill_buf(9)
  • libeth_xdp_xmit_flush_bulk(9)
  • __libeth_xdp_xmit_do_bulk(9)
  • libeth_xdp_xmit_do_bulk(9)
  • libeth_xdp_tx_init_bulk(9)
  • libeth_xdp_init_buff(9)
  • libeth_xdp_save_buff(9)
  • libeth_xdp_return_stash(9)
  • libeth_xdp_return_buff(9)
  • libeth_xdp_prepare_buff(9)
  • libeth_xdp_process_buff(9)
  • libeth_xdp_buff_stats_frags(9)
  • __libeth_xdp_run_prog(9)
  • __libeth_xdp_run_flush(9)
  • libeth_xdp_run_prog(9)
  • __libeth_xdp_run_pass(9)
  • libeth_xdp_run_pass(9)
  • libeth_xdp_finalize_rx(9)
  • LIBETH_XDP_DEFINE_TIMER(9)
  • LIBETH_XDP_DEFINE_FLUSH_TX(9)
  • LIBETH_XDP_DEFINE_FLUSH_XMIT(9)
  • LIBETH_XDP_DEFINE_RUN_PROG(9)
  • LIBETH_XDP_DEFINE_RUN_PASS(9)
  • LIBETH_XDP_DEFINE_RUN(9)
  • LIBETH_XDP_DEFINE_FINALIZE(9)
  • libeth_xdp_buff_to_rq(9)
  • libeth_xdpmo_rx_hash(9)
  • __libeth_xdp_complete_tx(9)
  • libeth_xdp_set_features(9)
  • libeth_xdp_set_features_noredir(9)
not me listing every single one of them β€” yes, both enum (anonymous)(9) entries, they're both there, iykyk πŸ™ˆ

that's the whole page bestie, no crumbs left behind πŸ’œ

and the cute lil sign-off: this whole thing lives in ./include/net/libeth, dated October 2026, and it's the libeth_xdpsq_lock(9) man page β€” go forth and lock responsibly, mwah πŸ“βœ¨

πŸ“¦ where this page comes from