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