EFADV_QUERY_QP_WQS(3)

✨ NAME ✨

efadv_query_qp_wqs β€” okay bestie, this is the one that queries the EFA-specific Queue Pair work queue attributes πŸ’…. And real quick, the manual name is EFA Direct Verbs Manual, so jot that down πŸŽ€.


🌸 SYNOPSIS 🌸

#include <infiniband/efadv.h>

int efadv_query_qp_wqs(struct ibv_qp *ibvqp, struct efadv_wq_attr *sq_attr,
                       struct efadv_wq_attr *rq_attr, uint32_t inlen);

πŸ’… DESCRIPTION πŸ’…

So efadv_query_qp_wqs() is literally the function you call when you need the device-specific Queue Pair work queue attributes πŸ‘‘. It's giving "tell me everything about these WQs" energy, and we love that for us.

Compatibility is handled using the comp_mask and inlen fields β€” no cap, that's just how it works 🫢.

struct efadv_wq_attr {
    uint64_t comp_mask;
    uint8_t *buffer;
    uint32_t entry_size;
    uint32_t num_entries;
    uint32_t *doorbell;
    uint32_t max_batch;
    uint16_t caps;
    uint8_t reserved[2];
};
  • inlen β€” In: size of struct efadv_wq_attr, bestie. That's the input length vibe check ✨.
  • comp_mask β€” compatibility mask, iconic for keeping things compatible πŸ’–.
  • buffer β€” the queue buffer, literally where the queue lives πŸ¦‹.
  • entry_size β€” size of each entry in the queue, so each lil entry knows its size πŸ’….
  • num_entries β€” maximal number of entries in the queue, the absolute max, periodt πŸ”₯.
  • doorbell β€” the queue doorbell, ding dong, submissions incoming πŸŽ€.
  • max_batch β€” maximum batch size for queue submissions, batch queen behavior 🌸.
  • caps β€” work queue capabilities, and here's the tea:
    • EFADV_WQ_CAPS_64_BIT_REQ_ID β€” work queue supports posting requests with 64-bit IDs. When set, the associated completion queue is guaranteed to return 64-bit request IDs as well. No cap, 64-bit IDs all the way down πŸ‘‘.

πŸŽ€ RETURN VALUE πŸŽ€

efadv_query_qp_wqs() returns 0 on success, or the value of errno on failure β€” and that failure value tells you the failure reason, so you're not left guessing 😭.


πŸ¦‹ SEE ALSO πŸ¦‹


πŸ“ NOTES πŸ“

  • Compatibility mask (comp_mask) is an out field and currently has no values. That's it, that's the note β€” don't come for me, I'm just the messenger πŸ’€.

πŸ‘‘ AUTHORS πŸ‘‘

Michael Margolin mrgolin@amazon.com β€” periodt, credit where credit is due 🫢.


Source/version: efa β€” date: 2025-05-14, and that's the cute lil sign-off, bestie. Bye, slay, and may your queues always be queried correctly πŸ’–βœ¨πŸŽ€

πŸ“¦ where this page comes from
  • arch rolling: rdma-core 65.0-1 Β· GPL-2.0-or-later OR LicenseRef-OpenIB.org-BSD-MIT AND GPL-2.0-or-later OR LicenseRef-OpenIB.org-BSD-FreeBSD AND GPL-2.0-or-later OR LicenseRef-Intel-BSD-3-Clause AND GPL-2.0-or-later OR LicenseRef-PathScale-BSD-Patent-License AND CC0-1.0 AND MIT AND BSD-2-Clause AND CPL-1.0 OR BSD-2-Clause OR GPL-2.0-or-later
  • πŸ’– girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms