Refactor the Zerocopy Direct API 22/4222/10
authorNitin Bhat <nbhat4@illinois.edu>
Fri, 25 May 2018 14:45:36 +0000 (09:45 -0500)
committerNitin Bhat <nbhat4@illinois.edu>
Mon, 2 Jul 2018 22:25:11 +0000 (17:25 -0500)
commit0462cf7491f93212e7e1f5b30ec5f27c3c777ff2
treec91cbda0decf8476fe2a03f327b322477d87ceb0
parent9271b3b01bebddc10b87803afc2f621ffde28611
Refactor the Zerocopy Direct API

Use a single dynamically allocated object of the type NcpyOperationInfo,
as a single argument, instead of passing many parameters. This design leads
to fewer smaller allocations in the machine layer code and allows to simplify
code significantly. It also makes the code more maintainable and flexible
towards changing behavior or passing new information down to the Lrts RDMA methods.

This commit also adds the feature (Feature #1919) for an optional arbitrary pointer
being passed by the user before the zerocopy operation (get/put). This reference
pointer is returned back to the user in the callback using the CkNcpyAck object.

Change-Id: I0ec2320b664aec8dee6d0a4e327c0ee689326e4f
20 files changed:
doc/charm++/zerocopyapi.tex
src/arch/gni/machine-onesided.c
src/arch/gni/machine.C
src/arch/mpi/machine-onesided.c
src/arch/mpi/machine.C
src/arch/ofi/machine-onesided.c
src/arch/ofi/machine-onesided.h
src/arch/util/machine-rdma.h
src/arch/verbs/machine-ibverbs.c
src/arch/verbs/machine-onesided.c
src/ck-core/ckrdma.C
src/ck-core/ckrdma.h
src/ck-core/init.C
src/conv-core/conv-header.h [new file with mode: 0644]
src/conv-core/conv-rdma.c
src/conv-core/conv-rdma.h
src/conv-core/converse.h
src/scripts/Makefile
src/util/cmirdmautils.c [new file with mode: 0644]
src/util/cmirdmautils.h [new file with mode: 0644]