ibv_poll_cq - poll a completion queue (CQ)
#include <infiniband/verbs.h> int ibv_poll_cq(struct ibv_cq *cq, int num_entries, struct ibv_wc *wc);
Libibverbs Programmer's Manual IBV_POLL_CQ(3)
NAME
ibv_poll_cq - poll a completion queue (CQ)
SYNOPSIS
#include <infiniband/verbs.h>
int ibv_poll_cq(struct ibv_cq *cq, int num_entries,
struct ibv_wc *wc);
DESCRIPTION
ibv_poll_cq() polls the CQ cq for work completions and returns the
first num_entries (or all available completions if the CQ contains
fewer than this number) in the array wc. The argument wc is a pointer
to an array of ibv_wc structs, as defined in <infiniband/verbs.h>.
struct ibv_wc {
uint64_t wr_id; /* ID of the completed Work Request (WR) */
enum ibv_wc_status status; /* Status of the operation */
enum ibv_wc_opcode opcode; /* Operation type specified in the completed WR */
uint32_t vendor_err; /* Vendor error syndrome */
uint32_t byte_len; /* Number of bytes transferred */
uint32_t imm_data; /* Immediate data (in network byte order) */
uint32_t qp_num; /* Local QP number of completed WR */
uint32_t src_qp; /* Source QP number (remote QP number) of completed WR (valid only for UD QPs) */
int wc_flags; /* Flags of the completed WR */
uint16_t pkey_index; /* P_Key index (valid only for GSI QPs) */
uint16_t slid; /* Source LID */
uint8_t sl; /* Service Level */
uint8_t dlid_path_bits; /* DLID path bits (not applicable for multicast messages) */
};
The attribute wc_flags describes the properties of the work completion.
It is either 0 or the bitwise OR of one or more of the following flags:
IBV_WC_GRH GRH is present (valid only for UD QPs)
IBV_WC_WITH_IMM Immediate data value is valid
Not all wc attributes are always valid. If the completion status is
other than IBV_WC_SUCCESS, only the following attributes are valid:
wr_id, status, qp_num, and vendor_err.
RETURN VALUE
On success, ibv_poll_cq() returns a non-negative value equal to the
number of completions found. On failure, a negative value is returned.
ATTRIBUTES
See attributes(7) for descriptions of the following attributes:
+---------------+-----------------------+
|ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+---------------+-----------------------+
|Availability | network/open-fabrics |
+---------------+-----------------------+
|Stability | Pass-through volatile |
+---------------+-----------------------+
NOTES
Each polled completion is removed from the CQ and cannot be returned to
it.
The user should consume work completions at a rate that prevents CQ
overrun from occurrence. In case of a CQ overrun, the async event
IBV_EVENT_CQ_ERR will be triggered, and the CQ cannot be used.
Source code for open source software components in Oracle Solaris can
be found at https://www.oracle.com/downloads/opensource/solaris-source-
code-downloads.html.
This software was built from source available at
https://github.com/oracle/solaris-userland. The original community
source was downloaded from ['https://www.openfabrics.org/down-
loads/ibutils/ibutils-1.5.7-0.2.gbd7e502.tar.gz', 'https://www.openfab-
rics.org/downloads/libibverbs/libibverbs-1.1.8.tar.gz',
'https://www.openfabrics.org/downloads/libmlx4/libmlx4-1.0.6.tar.gz',
'https://www.openfabrics.org/downloads/libsdp/lib-
sdp-1.1.108-0.15.gd7fdb72.tar.gz', 'https://www.openfabrics.org/down-
loads/management/infiniband-diags-1.6.5.tar.gz', 'https://www.openfab-
rics.org/downloads/management/libibmad-1.3.12.tar.gz',
'https://www.openfabrics.org/downloads/management/libibu-
mad-1.3.10.2.tar.gz', 'https://www.openfabrics.org/downloads/manage-
ment/opensm-3.3.19.tar.gz', 'https://www.openfabrics.org/down-
loads/perftest/perftest-1.3.0-0.42.gf350d3d.tar.gz', 'https://www.open-
fabrics.org/downloads/qperf/qperf-0.4.9.tar.gz', 'https://www.openfab-
rics.org/downloads/rdmacm/librdmacm-1.0.21.tar.gz', 'https://www.open-
fabrics.org/downloads/rds-tools/rds-tools-2.0.4.tar.gz'].
Further information about this software can be found on the open source
community website at http://www.openfabrics.org/.
SEE ALSO
ibv_post_send(3), ibv_post_recv(3)
AUTHORS
Dotan Barak <dotanba@gmail.com>
libibverbs 2006-10-31 IBV_POLL_CQ(3)