STRUCT IWL_RB_ALLOCATOR(9)
π struct iwl_rb_allocator(9) π
okay so bestie, welcome to the Kernel API Manual β this is the page for struct iwl_rb_allocator, aka the Rx allocator β¨ it's giving "the little struct that keeps your receive buffers fed" and honestly? iconic. π
β¨ SYNOPSIS β¨
here's the whole glow-up, literally copy-pasted energy but make it fashion:
struct iwl_rb_allocator {
atomic_t req_pending;
atomic_t req_ready;
struct list_head rbd_allocated;
struct list_head rbd_empty;
spinlock_t lock;
struct workqueue_struct *alloc_wq;
struct work_struct rx_alloc;
};
no cap, that's the whole thing. now let's meet the cast π«Ά
πΈ Members πΈ
req_pendingβ the number of requests the allcator had not processed yet. yes bestie, "allcator" β that's how the original spells it, I'm not gonna gaslight you π think of it as the to-do list that's still sitting there unread in the group chat.req_readyβ the number of requests that got honored and are ready for claiming. these ones already ate and are just waiting for somebody to come pick them up πrbd_allocatedβ RBDs with pages allocated and ready to be handled to the queue. this is a list ofstruct iwl_rx_mem_buffer. basically the fully-loaded ones, main character energy, ready to go π¦rbd_emptyβ RBDs with no page attached, for allocator use. this is a list ofstruct iwl_rx_mem_buffer. the empties, the blank canvases, the "not me being unloaded rn" vibes πlockβ protects therbd_allocatedandrbd_emptylists. it's the bouncer at the door of both lists, no queue-jumping allowed πalloc_wqβ work queue for background calls. the behind-the-scenes crew, lowkey carrying the whole operation πrx_allocβ work struct for background calls. same energy, but this one's the actual work item, fr fr β
heads up bestie:rbd_allocatedandrbd_emptyare both lists ofstruct iwl_rx_mem_buffer, and both of them live underlock. do not touch them without it, I'm begging π«Ά
π¦ SEE ALSO π¦
the whole friend group, in the order the page gives them:
- Kernel file
./drivers/net/wireless/intel/iwlwifi/pcie/gen1_2/internal.h struct iwl_rx_mem_buffer(9)struct iwl_rx_transfer_desc(9)struct iwl_rx_completion_desc(9)struct iwl_rx_completion_desc_bz(9)struct iwl_rxq(9)iwl_get_closed_rb_stts(9)enum iwl_fw_mon_dbgfs_state(9)enum iwl_shared_irq_flags(9)enum iwl_image_response_code(9)struct cont_rec(9)enum iwl_pcie_imr_status(9)struct iwl_txq(9)struct iwl_pcie_txqs(9)struct iwl_trans_pcie(9)iwl_txq_inc_wrap(9)iwl_txq_dec_wrap(9)
and that's the page, bestie!! π§π sourced from ./drivers/net/wireless/intel/i... (it's struct iwl_rb_allocator(9) in the Kernel API Manual), dated October 2026 β slay, see you in the next manpage, 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