ib_process_cq_direct(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… 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