RDMA_GET_SEND_COMP(3)
π RDMA_GET_SEND_COMP(3) π
okay bestie, so this is a page from the Librdmacm Programmer's Manual β yes, the rdma one, the one that makes your network go brrr π¦ β and it's literally all about rdma_get_send_comp. Sit down, hydrate, let's get into it π
β¨ NAME β¨
rdma_get_send_comp β retrieves a completed send, read, or write request.
like. it goes and gets your finished work request. that's the whole job. no cap π
πΈ SYNOPSIS πΈ
#include <rdma/rdma_verbs.h>
int rdma_get_send_comp (struct rdma_cm_id *id, struct ibv_wc *wc);
two args, one int back. iconic behavior honestly π
π«Ά ARGUMENTS π«Ά
idβ a reference to a communication identifier to check for completions. this is the thing you're like "hey bestie, anything done in there?" about πwcβ a reference to a work completion structure to fill in. it's an out-param, so it comes back stuffed with the tea ββ¨
π¦ DESCRIPTION π¦
So what it actually does: it retrieves a completed work request for a send, an RDMA read, or an RDMA write operation. all three, same lil function, no favorites π₯°
The info about that completed request comes back to you through the wc parameter, and the wr_id in there is set to the context of the request β so you can clock which of your requests just finished, iykyk π₯
Want the full deets on the work completion structure itself? that's not here, bestie, go see ibv_poll_cq. it's giving "read the other manpage" and honestly fair π
π RETURN VALUE π
- Returns the number of returned completions (0 or 1) on success π β yes, that's it, it's a very "one or nothing" kind of function, lowkey minimal, highkey fine β¨
- Returns -1 on error π
If an error happens, errno gets set to indicate the failure reason. always check it, bestie, don't just stare at the -1 like it owes you an explanation π
π NOTES π
okay this part is the important part, pay attention π’
- This call polls the send completion queue associated with an
rdma_cm_id. - If a completion is not found, the call blocks until a request completes. so yeah, it'll just sit there, patiently, waiting. main character patience fr fr π§
- This call should only be used on
rdma_cm_id's that do not share CQs with otherrdma_cm_id's, and that maintain separate CQs for sends and receive completions.
Like, for real. Sharing CQs while using this? do not. that's the vibe check and you would fail it π« don't do it.
π SEE ALSO π
rdma_cm(7)ibv_poll_cq(3)rdma_get_recv_comp(3)rdma_post_send(3)rdma_post_read(3)rdma_post_write(3)
all your little friends, go read them too, they're a set π
and that's the page!! mwah π this one's from librdmacm, dated 2010-07-19, filed under RDMA_GET_SEND_COMP(3) β go poll something and slay, bestie πβ¨π¦
π¦ where this page comes from
- alpine 3.24: rdma-core-doc 61.0-r0 Β· GPL-2.0-only OR BSD-2-Clause
- 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
- centos-stream 10: rdma-core-devel 62.0-3.el10 Β· GPLv2 or BSD
- centos-stream 9: rdma-core-devel 61.0-3.el9 Β· GPLv2 or BSD
- centos-stream 9: rdma-core-devel 61.0-3.el9 Β· GPLv2 or BSD
- debian bookworm: librdmacm-dev 44.0-2 Β· BSD-MIT OR GPL-2.0-only
- debian trixie: librdmacm-dev 56.1-1 Β· BSD-MIT OR GPL-2.0-only
- fedora 43: rdma-core-devel 58.0-4.fc43 Β· GPL-2.0-only OR BSD-2-Clause AND BSD-3-Clause
- fedora 43: rdma-core-devel 58.0-4.fc43 Β· GPL-2.0-only OR BSD-2-Clause AND BSD-3-Clause
- fedora 44: rdma-core-devel 61.0-2.fc44 Β· GPL-2.0-only OR BSD-2-Clause AND BSD-3-Clause
- fedora 44: rdma-core-devel 61.0-2.fc44 Β· GPL-2.0-only OR BSD-2-Clause AND BSD-3-Clause
- fedora 44: rdma-core-devel 61.1^20260812git975bdaf-1.fc44 Β· GPL-2.0-only OR BSD-2-Clause AND BSD-3-Clause
- fedora 44: rdma-core-devel 61.1^20260812git975bdaf-1.fc44 Β· GPL-2.0-only OR BSD-2-Clause AND BSD-3-Clause
- freebsd 14.5: base 14.5
- freebsd 15.1: base 15.1
- nixos 26.05: rdma-core 62.0
- nixpkgs unstable: rdma-core 65.0
- opensuse-leap 16.0: rdma-core-devel 56.1-160000.2.2 Β· BSD-2-Clause OR GPL-2.0-only
- opensuse-leap 16.0: rdma-core-devel 56.1-160000.2.2 Β· BSD-2-Clause OR GPL-2.0-only
- opensuse-leap 16.0: rdma-core-devel 56.1-160000.2.2 Β· BSD-2-Clause OR GPL-2.0-only
- opensuse-leap 16.0: rdma-core-devel 56.1-160000.2.2 Β· BSD-2-Clause OR GPL-2.0-only
- ubuntu jammy: librdmacm-dev 39.0-1 Β· BSD-MIT OR GPL-2.0-only
- ubuntu noble: librdmacm-dev 50.0-2build2 Β· BSD-MIT OR GPL-2.0-only
- ubuntu noble: librdmacm-dev 50.0-2ubuntu0.2 Β· BSD-MIT OR GPL-2.0-only
- ubuntu questing: librdmacm-dev 56.1-1ubuntu1
- ubuntu resolute: librdmacm-dev 61.0-2ubuntu3 Β· BSD-MIT OR GPL-2.0-only
- ubuntu stonking: librdmacm-dev 64.0-1ubuntu1 Β· BSD-MIT OR GPL-2.0-only
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms