__ib_alloc_cq(9)
π NAME
__ib_alloc_cq β bestie, this one allocates a completion queue β¨
This page lives in the Kernel API Manual, and it's literally all about making a CQ happen for in-kernel users π«Ά
β¨ SYNOPSIS
struct ib_cq * __ib_alloc_cq (struct ib_device *dev , void *private ,
int nr_cqe , int comp_vector , enum ib_poll_context poll_ctx ,
const char *caller );
π ARGUMENTS
okay so here's the whole cast of characters, no skips, no cuts π
devβ the device you're allocating the CQ for, like obviously π¦privateβ driver private data, and it's accessible fromcq->cq_context(iykyk)nr_cqeβ the number of CQEs to allocate π₯comp_vectorβ HCA completion vectors for this CQ, slaypoll_ctxβ the context to poll the CQ from πcallerβ module owner name, periodt
π¦ DESCRIPTION
So this is the proper interface to allocate a CQ for in-kernel users β like, the correct one, the main character one π
A CQ allocated with this interface will automatically be polled from the specified context, no cap β¨
And huge heads up: the ULP must use wr->wr_cqe instead of wr->wr_id to use this CQ abstraction. Literally do not mix those up, bestie π
πΈ SEE ALSO
./drivers/infiniband/core/cq.cib_process_cq_direct(9)__ib_alloc_cq_any(9)ib_free_cq(9)ib_cq_pool_get(9)ib_cq_pool_put(9)
π§ go read the kernel file if you want the lore, it's giving source material
kisses from the ./drivers/infiniband/core girlies β October 2026 πππ
π¦ 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