Search code examples
infiniband

`ibv_post_send` atomic operations & completion queue


When an atomic operation (either compare-and-swap or fetch-and-add) is posted to an InfiniBand queue, when does its completion event come out? Is the result put in the completion queue immediately after the command has been sent to the other side, or does it wait until it gets the response from the other side?

Behaviorally, when I get the completion event, is it guaranteed that my local buffer will contain the result of the atomic operation, or can it still be unspecified?


Solution

  • The completion event on the atomic operation initiator side is generated only after the response of the operation has arrived. This is similar to how RDMA read operations work.