Hello,
Since some time I'm testing Open MPI at the HRLS. My main topic there is the thread support of Open MPI. Some time ago I found a segmentation fault when running the svn-trunk Version. Thanks to the help of Sven I could locate it now to be in the shared memory btl. (ompi/mca/btl/sm/btl_sm.c) There the addresses of the fifos were modified because of the different memory mapping for the threads. Unfortunately this modification was not applied for the head_locks. The attached patch should fix this problem. Maybe someone could have a look on it? Regards Christoph
Index: ompi/mca/btl/sm/btl_sm.c
===================================================================
--- ompi/mca/btl/sm/btl_sm.c (Revision 15143)
+++ ompi/mca/btl/sm/btl_sm.c (Arbeitskopie)
@@ -516,8 +516,11 @@
/* Calculate the difference as (my_base - their_base) */
diff = tmp_ptr[mca_btl_sm_component.my_smp_rank] - tmp_ptr[j];
mca_btl_sm_component.fifo[j] = (ompi_fifo_t*)((char*)fifo_tmp[j]+diff);
+
+ mca_btl_sm_component.fifo[j][mca_btl_sm_component.my_smp_rank].head_lock =
+ (opal_atomic_lock_t*) ((char*)mca_btl_sm_component.fifo[j][mca_btl_sm_component.my_smp_rank].head_lock + diff);
+
mca_btl_sm_component.sm_offset[j] = diff;
-
}
for( j=mca_btl_sm_component.num_smp_procs ; j <
pgpDKJG53Fh1y.pgp
Description: PGP signature
