1
1
openmpi/ompi/mca/osc/rdma
Nathan Hjelm 45da311473 osc/rdma: fix hang when performing large unaligned gets
This commit adds code to handle large unaligned gets. There are two
possible code paths for these transactions:

 1) The remote region and local region have the same alignment. In
 this case the get will be broken down into at most three get
 transactions: 1 transaction to get the unaligned start of the region
 (buffered), 1 transaction to get the aligned portion of the region,
 and 1 transaction to get the end of the region.

 2) The remote and local regions do not have the same alignment. This
 should be an uncommon case and is not optimized. In this case a
 buffer is allocated and registered locally to hold the aligned data
 from the remote region. There may be cases where this fails (low
 memory, can't register memory). Those conditions are unlikely and
 will be handled later.

Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
2016-01-22 21:06:46 -07:00
..
configure.m4 osc/rdma: add true RDMA one-sided component 2015-09-16 15:01:33 -06:00
Makefile.am osc/rdma: add true RDMA one-sided component 2015-09-16 15:01:33 -06:00
osc_rdma_accumulate.c osc/rdma: bug fixes 2015-10-22 09:49:38 -06:00
osc_rdma_accumulate.h osc/rdma: add true RDMA one-sided component 2015-09-16 15:01:33 -06:00
osc_rdma_active_target.c Cleanup the warnings from the ompi layer when compiling optimized under Mac OSX 2015-12-17 17:39:15 -08:00
osc_rdma_active_target.h osc/rdma: add true RDMA one-sided component 2015-09-16 15:01:33 -06:00
osc_rdma_comm.c osc/rdma: fix hang when performing large unaligned gets 2016-01-22 21:06:46 -07:00
osc_rdma_comm.h osc/rdma: use standard verbosity levels 2015-10-21 12:31:41 -06:00
osc_rdma_component.c osc/rdma: use correct endpoint for local state 2016-01-22 10:41:27 -07:00
osc_rdma_dynamic.c osc/rdma: bug fixes 2015-10-22 09:49:38 -06:00
osc_rdma_dynamic.h osc/rdma: add true RDMA one-sided component 2015-09-16 15:01:33 -06:00
osc_rdma_frag.c osc/rdma: add true RDMA one-sided component 2015-09-16 15:01:33 -06:00
osc_rdma_frag.h osc/rdma: fix hang when performing large unaligned gets 2016-01-22 21:06:46 -07:00
osc_rdma_lock.h osc/rdma: fix hang when performing large unaligned gets 2016-01-22 21:06:46 -07:00
osc_rdma_module.c osc/rdma: add true RDMA one-sided component 2015-09-16 15:01:33 -06:00
osc_rdma_passive_target.c osc/rdma: use standard verbosity levels 2015-10-21 12:31:41 -06:00
osc_rdma_passive_target.h osc/rdma: add true RDMA one-sided component 2015-09-16 15:01:33 -06:00
osc_rdma_peer.c osc/rdma: add missing #include <alloca.h> 2015-12-24 14:33:58 +09:00
osc_rdma_peer.h osc/rdma: add true RDMA one-sided component 2015-09-16 15:01:33 -06:00
osc_rdma_request.c osc/rdma: fix hang when performing large unaligned gets 2016-01-22 21:06:46 -07:00
osc_rdma_request.h osc/rdma: fix hang when performing large unaligned gets 2016-01-22 21:06:46 -07:00
osc_rdma_sync.c osc/rdma: add true RDMA one-sided component 2015-09-16 15:01:33 -06:00
osc_rdma_sync.h osc/rdma: use standard verbosity levels 2015-10-21 12:31:41 -06:00
osc_rdma_types.h osc/rdma: fix bugs when running more than one process per node 2015-12-15 11:25:25 -07:00
osc_rdma.h osc/rdma: use standard verbosity levels 2015-10-21 12:31:41 -06:00
owner.txt osc/rdma: add true RDMA one-sided component 2015-09-16 15:01:33 -06:00