Zerocopy Direct API: Do not change UNREG to REG mode after registration 32/4532/3
authorNitin Bhat <nbhat4@illinois.edu>
Tue, 28 Aug 2018 22:17:33 +0000 (17:17 -0500)
committerNitin Bhat <nbhat4@illinois.edu>
Wed, 29 Aug 2018 18:58:39 +0000 (13:58 -0500)
commit0d172dbd8cc818d78cb8866e66d4944edbdb407a
tree948e3212b8a405724419e62c9d2d80dc18644ba1
parent93412985355707bd08c80dd58afb32342ed311c5
Zerocopy Direct API: Do not change UNREG to REG mode after registration

With the introduction of a new boolean variable inside CkNcpyBuffer,
called isRegistered, the registration management can be controlled without
the change in the user specified mode. With this change, the RTS internally
uses the value of isRegistered to avoid unnecessary registration and
de-registration. The user specified mode remains unchanged.

This fix also updates the example programs to test de-registration using the
CkNcpyBuffer received in the callback method. The examples are also updated
to not store the CkNcpyBuffer objects, wherever applicable, as data members
in the class as they are now received as a part of the CkDataMsg in the
CkCallback.

Change-Id: I896c7002284b7aab447ad5e3bd41cf709814d218
26 files changed:
doc/charm++/zerocopyapi.tex
examples/charm++/zerocopy/direct_api/prereg/get_put_pingpong/get_put_pingpong.C
examples/charm++/zerocopy/direct_api/prereg/get_put_pingpong/get_put_pingpong.ci
examples/charm++/zerocopy/direct_api/prereg/pingpong/pingpong.C
examples/charm++/zerocopy/direct_api/prereg/simple_get/simple_get.C
examples/charm++/zerocopy/direct_api/prereg/simple_get/simple_get.ci
examples/charm++/zerocopy/direct_api/prereg/simple_put/simple_put.C
examples/charm++/zerocopy/direct_api/prereg/simple_put/simple_put.ci
examples/charm++/zerocopy/direct_api/reg/get_put_pingpong/get_put_pingpong.C
examples/charm++/zerocopy/direct_api/reg/get_put_pingpong/get_put_pingpong.ci
examples/charm++/zerocopy/direct_api/reg/simple_get/simple_get.C
examples/charm++/zerocopy/direct_api/reg/simple_get/simple_get.ci
examples/charm++/zerocopy/direct_api/reg/simple_put/simple_put.C
examples/charm++/zerocopy/direct_api/reg/simple_put/simple_put.ci
examples/charm++/zerocopy/direct_api/unreg/get_put_pingpong/get_put_pingpong.C
examples/charm++/zerocopy/direct_api/unreg/get_put_pingpong/get_put_pingpong.ci
examples/charm++/zerocopy/direct_api/unreg/simple_get/simple_get.C
examples/charm++/zerocopy/direct_api/unreg/simple_put/simple_put.C
examples/charm++/zerocopy/direct_api/unreg/simple_put/simple_put.ci
src/arch/gni/machine-onesided.c
src/arch/ofi/machine-onesided.c
src/arch/verbs/machine-ibverbs.C
src/arch/verbs/machine-onesided.c
src/arch/verbs/machine-onesided.h
src/ck-core/ckrdma.C
src/ck-core/ckrdma.h