From 288d248292ac9de356150ca3afd35b3199c0ee4c Mon Sep 17 00:00:00 2001 From: Nathan Hjelm Date: Wed, 25 May 2016 10:45:00 -0600 Subject: [PATCH 1/2] btl/ugni: fix bug when attempting unaligned get on aries This commit fixes a programming error when using an aries nic. The documentation of ugni shows that only the local alignment restriction for get was lifted on aries. There is still a remote address alignment restriction. Signed-off-by: Nathan Hjelm (cherry picked from open-mpi/ompi@cc960978731c903ddfb9300b7af949d2671d88f2) Signed-off-by: Nathan Hjelm --- opal/mca/btl/ugni/btl_ugni_component.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/opal/mca/btl/ugni/btl_ugni_component.c b/opal/mca/btl/ugni/btl_ugni_component.c index 323cf367c8..abc9d3157b 100644 --- a/opal/mca/btl/ugni/btl_ugni_component.c +++ b/opal/mca/btl/ugni/btl_ugni_component.c @@ -234,11 +234,8 @@ btl_ugni_component_register(void) /* * see def. of ALIGNMENT_MASK to figure this one out */ - if (GNI_DEVICE_GEMINI == device_type) { - mca_btl_ugni_module.super.btl_get_alignment = 4; - } else { - mca_btl_ugni_module.super.btl_get_alignment = 0; - } + /* both gemini and aries have a 4-byte alignment requirement on remote addresses */ + mca_btl_ugni_module.super.btl_get_alignment = 4; /* threshold for put */ mca_btl_ugni_module.super.btl_min_rdma_pipeline_size = 8 * 1024; From dad3d47a6115ef394241593396b9df6b584cecd9 Mon Sep 17 00:00:00 2001 From: Nathan Hjelm Date: Tue, 31 May 2016 16:52:53 -0600 Subject: [PATCH 2/2] btl/ugni: remove erroneous unlock The endpoint lock was being released twice in mca_btl_ugni_get_ep. Signed-off-by: Nathan Hjelm (cherry picked from open-mpi/ompi@bf10d799148f2c15ee60192d0665bd01cb96da5f) Signed-off-by: Nathan Hjelm --- opal/mca/btl/ugni/btl_ugni_add_procs.c | 1 - 1 file changed, 1 deletion(-) diff --git a/opal/mca/btl/ugni/btl_ugni_add_procs.c b/opal/mca/btl/ugni/btl_ugni_add_procs.c index 2b547659c0..f13d590d3d 100644 --- a/opal/mca/btl/ugni/btl_ugni_add_procs.c +++ b/opal/mca/btl/ugni/btl_ugni_add_procs.c @@ -244,7 +244,6 @@ struct mca_btl_base_endpoint_t *mca_btl_ugni_get_ep (struct mca_btl_base_module_ do { rc = opal_hash_table_get_value_uint64 (&ugni_module->id_to_endpoint, proc_id, (void **) &ep); if (OPAL_SUCCESS == rc) { - OPAL_THREAD_UNLOCK(&ugni_module->endpoint_lock); break; }