IBV_QUERY_QP_DATA_IN_ORDER(3)
π NAME π
ibv_query_qp_data_in_order β check if qp data is guaranteed to be in order. Welcome to the Libibverbs Programmerβs Manual, bestie β¨ β the page title does that abbreviated thing: ibv_query..._in_order(3).
β¨ SYNOPSIS β¨
okay so hereβs the include and the whole function signature, verbatim, no cap:
#include <infiniband/verbs.h>
int ibv_query_qp_data_in_order(struct ibv_qp *qp, enum ibv_wr_opcode op, uint32_t flags);
π DESCRIPTION π
ibv_query_qp_data_in_order() checks whether WQE data is guaranteed to be written in-order, and thus a reader may poll for data instead of poll for completion. This function indicates data is written in-order within each WQE, but it cannot be used to determine ordering between separate WQEs. This function describes ordering at the receiving side of the QP, not the sending side. π
π¦ ARGUMENTS π¦
qpβ The local queue pair (QP) to query.opβ The operation type to query about. Different operation types may write data in a different order. For RDMA read operations: describes ordering of RDMA reads posted on this local QP. For RDMA write operations: describes ordering of remote RDMA writes being done into this local QP. For RDMA send operations: describes ordering of remote RDMA sends being done into this local QP. This function should not be used to determine ordering of other operation types.flagsβ Flags are used to select a query type. Supported values:IBV_QUERY_QP_DATA_IN_ORDER_RETURN_CAPSβ Query for supported capabilities and return a capabilities vector.IBV_QUERY_QP_DATA_IN_ORDER_DEVICE_ONLYβ Allows querying only the RDMA device side support for data-in-order semantics without enforcing host CPU architecture restrictions. It is the responsibility of the application to ensure data-in-order semantics support for the host CPU or receiver device.
Passing 0 is equivalent to using IBV_QUERY_QP_DATA_IN_ORDER_RETURN_CAPS and checking for IBV_QUERY_QP_DATA_IN_ORDER_WHOLE_MSG support. π«Ά
π RETURN VALUE π
ibv_query_qp_data_in_order() return value is determined by flags. For each capability bit, 1 is returned if the data is guaranteed to be written in-order for selected operation and type, 0 otherwise. If IBV_QUERY_QP_DATA_IN_ORDER_RETURN_CAPS flag is used, return value can consist of following capabilities:
IBV_QUERY_QP_DATA_IN_ORDER_WHOLE_MSGβ All data is being written in order.IBV_QUERY_QP_DATA_IN_ORDER_ALIGNED_128_BYTESβ Each128bytes aligned block is being written in order.
If flags is 0, the function will return 1 if IBV_QUERY_QP_DATA_IN_ORDER_WHOLE_MSG is supported and 0 otherwise. π
πΈ NOTES πΈ
π§ Return value is valid only when the data is read by the CPU and relaxed ordering MR is not the target of the transfer. Like, thatβs the vibe check for this return value.
π SEE ALSO π
ibv_query_qp(3) β go peek at that one too, bestie.
π AUTHOR π
Patrisious Haddad <phaddad@nvidia.com>Yochai Cohen <yochai@nvidia.com>
Thatβs the whole page, bestie π«Ά β it comes from libibverbs, dated 2020-3-3, and the footer also calls it ibv_query..._in_order(3) π.
π¦ where this page comes from
- alpine 3.24: rdma-core-doc 61.0-r0 Β· GPL-2.0-only OR BSD-2-Clause
- 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
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms