bzero() function conforms to IEEE Std 1003.1-2001 (``POSIX.1'')
memset() function conforms to ISO/IEC 9899:1990 (``ISO C90'')Both functions are in the libc, so it's definitively difficult to see which one is better.
george. On Aug 21, 2008, at 3:32 PM, Jeff Squyres wrote:
IIRC, bzero is a gnu-ism. We should probably use memset instead. On Aug 21, 2008, at 5:40 AM, George Bosilca wrote:Terry,We use the feature defined by POSIX mmap where the area should be zero-filled when the file length is extended. What OS you're using when you see such problems ?Just in case, here is a patch that set the beginning of the mmaped region to zero, in case this is not done automatically. As in most cases this is an unnecessary overhead, we should find the cases where we really need this, and possibly conditionally compile it.Index: ompi/mca/common/sm/common_sm_mmap.c =================================================================== --- ompi/mca/common/sm/common_sm_mmap.c (revision 19377) +++ ompi/mca/common/sm/common_sm_mmap.c (working copy) @@ -163,6 +163,7 @@ /* initialize the segment - only the first process to open the file */ + bzero( map->data_addr, size );mem_offset = map->data_addr - (unsigned char *)map- >map_seg;map->map_seg->seg_offset = mem_offset; map->map_seg->seg_size = size - mem_offset; george. On Aug 21, 2008, at 1:22 PM, Terry Dontje wrote:I've been seeing an intermittent (once every 4 hours looping on a quick initialization program) segv with the following stack trace.=>[1] mca_btl_sm_add_procs(btl = 0xfffffd7ffdb67ef0, nprocs = 2U, procs = 0x591560, peers = 0x591580, reachability = 0xfffffd7fffdff000), line 519 in "btl_sm.c" [2] mca_bml_r2_add_procs(nprocs = 2U, procs = 0x591560, bml_endpoints = 0x591500, reachable = 0xfffffd7fffdff000), line 222 in "bml_r2.c" [3] mca_pml_ob1_add_procs(procs = 0x5914c0, nprocs = 2U), line 248 in "pml_ob1.c" [4] ompi_mpi_init(argc = 1, argv = 0xfffffd7fffdff318, requested = 0, provided = 0xfffffd7fffdff234), line 651 in "ompi_mpi_init.c" [5] PMPI_Init(argc = 0xfffffd7fffdff2ec, argv = 0xfffffd7fffdff2e0), line 90 in "pinit.c"[6] main(argc = 1, argv = 0xfffffd7fffdff318), line 82 in "buffer.c"I believe the problem is that mca_btl_sm_component.shm_fifo[j] contains uninitialized data causes the loop on line 504 in btl_sm.c to think that a remote rank has set its fifo address.Has anyone else seen the above happening? --td _______________________________________________ devel mailing list de...@open-mpi.org http://www.open-mpi.org/mailman/listinfo.cgi/devel_______________________________________________ devel mailing list de...@open-mpi.org http://www.open-mpi.org/mailman/listinfo.cgi/devel-- Jeff Squyres Cisco Systems _______________________________________________ devel mailing list de...@open-mpi.org http://www.open-mpi.org/mailman/listinfo.cgi/devel
smime.p7s
Description: S/MIME cryptographic signature