libeth_xdpsq_lock(9)
π 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:
- static key enabled? β β keep going
- queue marked shareable? β β now we touch the underlying spinlock
- 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
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms