I am currently reading the RDMA development manual and I found an advanced feature called TUNNELED ATOMICS: https://docs.nvidia.com/networking/display/rdmacore50/tunneled+atomic. However, I found the explanation on this website to be vague and hard to understand. And there seems to be no detailed information about this feature on the internet.
I wonder if anyone could provide more detailed information about this operation?
This answer records an investigation in trying to understand what the Tunneled Atomic operation does.
Downloaded
MLNX_OFED_SRC-4.9-7.1.0.0.tgzfrom Linux Drivers, which are the sources from the NVIDIA MLNX_OFED Download Center. Manually unpacked some of theSRPMSsource RPMs to look at the code and supporting comments.libibverbs-41mlnx1-OFED.4.9.3.0.0.49710.src.rpmwhich contains the source for the user spaceibverbslibrary has:The C source code has
IBV_EXP_ACCESS_TUNNELED_ATOMIC,IBV_EXP_DEVICE_ATTR_TUNNELED_ATOMIC,IBV_EXP_TUNNELED_ATOMIC_SUPPORTEDandtunneled_atomic_caps. However, are unable to find any comments explaining what they do.man/ibv_exp_reg_mr.3which is the source for the man page for theibv_exp_reg_mrfunction:Where the above is a bit more information that in Tunneled Atomic in the online OFED documentation.
mlnx-ofa_kernel-4.9-OFED.4.9.7.1.0.1.src.rpmcontains the source for the OFED Kernel drivers. They contains references to tunneled atomics, but again can't seem to find any comments explaining what they do.The Kernel source file has the following
mlnx-ofa_kernel-4.9/drivers/net/ethernet/mellanox/mlx5/core/main.c, which is the only call toset_tunneled_operation:Where the above function which references tunneled atomics and tunneled operation is inside conditional compilation on
HAVE_PNV_PCI_AS_NOTIFYbeing defined. Looking at the build scriptsHAVE_PNV_PCI_AS_NOTIFYis only defined when the functionpnv_pci_enable_tunnelis present inasm/pnv-pci.hwhich is an include file inside/arch/powerpc/include. I.e. specific to the PowerPC architecture. On searching thinkpnv_pci_enable_tunnelis used to support the Coherent Accelerator Processor Interface (CAPI) on IBM's Power8 processors.Summary
I haven't specifically answered the question of what the RDMA tunneled atomics do, but could be for use with CAPI, which itself is used in large data center computers.