ZC EM API: Provide user control to not de-register buffers after completion 36/5136/3
authorNitin Bhat <nbhat4@illinois.edu>
Thu, 25 Apr 2019 20:33:45 +0000 (15:33 -0500)
committerNitin Bhat <nbhat4@illinois.edu>
Tue, 7 May 2019 14:39:17 +0000 (09:39 -0500)
commit6f2d8e75196e0df3d46c2fba93360e8e30822343
treebf593973ad704ff099ae49a967113983f27aacd0
parent6ead67fe7805e4bc63575977dd7eeca84cc345a2
ZC EM API: Provide user control to not de-register buffers after completion

In this commit, two modes for specifying de-registration mode were added.
These are CMK_BUFFER_DEREG and CMK_BUFFER_NODEREG. The de-registration mode
can be specified during the creation of CkNcpyBuffer, as a parameter inside the
CkSendBuffer method and inside Post Entry Method using the CkNcpyBufferPost object.

CMK_BUFFER_DEREG is the default mode which makes the RTS de-register the buffers
after the completion of the Zero Copy operation for ZC EM Send and Post API.

CMK_BUFFER_NODEREG is used to make the RTS skip de-registration of the buffers after the
completion of the Zero Copy operation. For the ZC Send API, specifying CMK_BUFFER_NODEREG
in CkSendBuffer ensures that the source buffer remains registered after the completion of
the operation. For the ZC Post API, in addition to specifying CMK_BUFFER_NODEREG in
CkSendBuffer, it can also be specified in the Post Entry Method using the CkNcpyBufferPost
object. This ensures that the destination buffer, which was posted by the user remains
registered after the completion of the operation.

Change-Id: I8be4f1dedb61b4b7a13f4e474a7cc0d3721d6d9e
src/arch/common/conv-mach-common.h
src/ck-core/ckrdma.C
src/ck-core/ckrdma.h
src/util/cmirdmautils.C
src/util/cmirdmautils.h
src/xlat-i/xi-Parameter.C