How to use extended atomics?

I’m hoping someone can help me get started using extended atomics. Specifically, I’m interested in the masked compare and swap operation. As of now, I am finding it hard to track down any documentation on the subject. The one doc on the Advanced Transports page (of the 5.3 InfiniBand driver) mentions that it is not currently supported by rdma-core. However, I did find some patches that appear to be adding it in the future. Is there an alternative I should be using in the meantime? Any suggestions would be greatly appreciated!

Thanks,

Jacob

Hi Jacob,

I reviewed our RN/UM from our latest 5.3 driver and I do not see such statement.

Since MLNX_OFED 5.1 we have fully transition to Upstream Verbs from Legacy/Experimental Verbs though I do not see an issue documented using Atomic Operations with Upstream/RDMA-core.

What document did you consult?

From our web page: https://www.mellanox.com/products/infiniband-drivers/linux/mlnx_ofed

You will have access to our RN/UM & RDMA Aware Network Programing User Manual for more references.

Sophie.

Hi Sophie,

Thanks for the quick response! Just to clarify, I am curious about how to use extended atomics, not regular atomics. Also, I was mistaken about the version number. I was actually referring to this which states at the bottom that the extended atomics aren’t supported in rdma-core.

Typically, when programming RDMA-aware applications I will include the <infiniband/verbs.h> header and be on my way, but that doesn’t support extended atomics. The documentation in the RDMA Aware Network Programming User Manual (v1.7) references some structs and macros for extended atomics but those symbols are not defined in infiniband/verbs.h. Is there an alternative header and library that I should be using? Is there sample code anywhere with a working example of extended atomics? I apologize if I am missing something but it is not clear what I should be doing.

Thanks so much for the help,

Jacob

Hi Jacob,

After validating internally with our engineering team, extended atomics are not and will not be supported with RDMA-CORE. Driver version 5.1 and on documentation will be updated accordingly.

Sophie.