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 <

Attachment: pgpDKJG53Fh1y.pgp
Description: PGP signature

Reply via email to