Why RXE_COMP_MASK on RDMA SEND without immediate?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello,

I am still new to RoCEv2 and have created a test utility patterned
after the rc_pingpong.c libibverbs example, but using RDMA WRITE
instead of RDMA SEND.

I discovered that when one machine sends a read, the other machine
acknowledges but does not indicate any completion on the CQ.  This
means userspace never wakes up to do its "pong" code.


The cause of this is that IB_OPCODE_RC_SEND_LAST has RXE_COMP_MASK
associated (http://lxr.free-electrons.com/source/drivers/infiniband/sw/rxe/rxe_opcode.c#L149),
but IB_OPCODE_RC_RDMA_WRITE_LAST does not.  Can someone please help me
understand why SEND LAST would trigger the CQ (creating a CQE, if I
understand correctly) even in the non-immediate case?

Page 170 of the Infiniband spec (vol 1, release 1.3) suggests the CQE
is only created for such packets with immediate data (ImmDt header).

Also for reference, page 531 of the Infiniband spec talks about
signaled completions and the conditions which cause a CQE to be
generated.


Thanks,
-J
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Photo]     [Yosemite News]     [Yosemite Photos]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux