STRUCT LIBIE_CTLQ_XN_MANAGER(9)
π STRUCT LIBIE_CTLQ_XN_MANAGER(9) β the vibe check
okay so bestie, welcome to the Kernel API Manual, section 9 π β this is the page for struct libie_ctlq_xn_manager, and ngl it's a whole little ecosystem in a struct.
β¨ NAME β¨
struct libie_ctlq_xn_manager β the structure that's literally representing the array of virtchnl transaction entries π¦
Like, think of it as the group chat admin of your transaction entries. It holds them, it tracks who's free, and it does not appreciate chaos.
πΈ SYNOPSIS πΈ
struct libie_ctlq_xn_manager {
struct libie_ctlq_ctx *ctx;
spinlock_t free_xns_bm_lock;
unsigned long free_xns_bm[BITS_TO_LONGS(
LIBIE_CTLQ_MAX_XN_ENTRIES)];
struct libie_ctlq_xn ring[LIBIE_CTLQ_MAX_XN_ENTRIES];
struct dma_pool *small_buff_pool;
struct completion can_destroy;
bool shutdown;
};
the way this is just peak struct design, no cap π
π«Ά Members π«Ά
here's the squad, one by one π
ctxβ pointer to the controlq context structure π like, it knows the controlq. that's the whole thing.free_xns_bm_lockβ the lock that protects the free Xn entries bit map π the bodyguard, fr fr. nobody touches the bitmap without it.free_xns_bmβ the bitmap that represents which Xn entries are free β¨ one bit per entry, keeping track, doing the most.ringβ the array of Xn entries π this is the main character. the whole circle of them, literally.small_buff_poolβ DMA pool for small send buffers π§ tiny buffer pool, small but mighty.can_destroyβ a completion, triggered by the last released transaction π so like, when the last one dips, then you get the signal. iconic behavior.shutdownβ the shutdown process has been started, no new transactions allowed π periods. the doors are CLOSED. no new entries, we're not doing that anymore.
π SEE ALSO π
Kernel file ./include/linux/net/intel/libie/controlq.h and its friends β here's the full lineup, don't lose any of them:
enum libie_ctlq_type(9)struct libie_ctlq_ctx(9)struct libie_ctlq_reg(9)struct libie_cp_dma_mem(9)struct libie_ctlq_msg(9)struct libie_ctlq_create_info(9)struct libie_ctlq_info(9)struct libie_ctlq_desc(9)struct libie_ctlq_clean_params(9)libie_ctlq_release_rx_buf(9)enum libie_ctlq_xn_state(9)struct libie_ctlq_xn(9)struct libie_ctlq_xn_send_params(9)libie_cp_can_send_onstack(9)struct libie_ctlq_xn_recv_params(9)struct libie_ctlq_xn_init_params(9)
π okay that's the whole page bestie, go read the rest of the libie controlq lore, iykyk
π mwah π this came to you from ./include/linux/net/intel/libie, and it's dated October 2026 β so like, born in the future, still slaying β
π¦ 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