ib_process_cq_direct(9)
π ib_process_cq_direct(9) β Kernel API Manual β¨
Okay bestie, so this page is literally all about ib_process_cq_direct from the Kernel API Manual β it's giving "I do my own CQ processing, no middleman" energy and honestly? Iconic. π
πΈ NAME πΈ
ib_process_cq_direct β process a CQ in caller context. That's it, that's the whole vibe. π
β¨ SYNOPSIS β¨
int ib_process_cq_direct (struct ib_cq *cq , int budget );
π¦ ARGUMENTS π¦
cqβ the CQ to process, aka the main character of this whole situation πbudgetβ number of CQEs to poll for. That's how many completions we're willing to scoop up, fr fr. π₯
π DESCRIPTION π
So this function is used to process all outstanding CQ entries β like, every single one that's sitting there waiting. π«Ά
The way that it does not offload CQ processing to a different context? Honestly a serve. And it also does not ask for completion interrupts from the HCA β it's fully DIY, no interruptions needed. π
β οΈ But bestie, listen: using direct processing on a CQ with non IB_POLL_DIRECT type may trigger concurrent processing. So likeβ¦ be aware of that, okay? π
π NOTE π
Do not pass -1 as budget unless it is guaranteed that the number of completions that will be processed is small. Like seriously, do not do it. That's the whole note. π
π§ SEE ALSO π§
Kernel file ./drivers/infiniband/core/cq.c β and then the whole friend group:
And that's the page! π Sourced from ./drivers/infiniband/core, dated October 2026 β catch you in the next manpage, bestie! ππ
π¦ 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