Hi Jeff

Sorry to disturb you

I send you the Stack Frame captured with Totalview.

The example program "callocrash" goes in Segmentation Violation on sYMALLOc
function:

set_head(remainder, remainder_size | PREV_INUSE);


The Stack frame is

Function "sYSMALLOc":
  nb:                        0x000000025216d050 (9967161424)
  av:                        0x2a95c1ef00 (&main_arena) -> (struct
malloc_state)
Local variables:
  old_top:                   0x0b8bc110 -> (struct malloc_chunk)
  old_size:                  0x0000000000020ef0 (134896)
  old_end:                   0x0b8dd000 -> ""
  size:                      0x000000025218def0 (9967296240)
  correction:                0x0000000000000000 (0)
  brk:                       0x0b8dd000 -> ""
  snd_brk:                   0xffffffffffffffff -> <Bad address:
0xffffffffffffffff>
  front_misalign:            0x0000000000000000 (0)
  end_misalign:              0x000000000b8dd000 (193843200)
  aligned_brk:               0x00507000 -> ""
  p:                         0x0b8bc110 -> (struct malloc_chunk)
  remainder:                 0x25da29160 -> <Bad address: 0x25da29160>
(struct malloc_chunk)
  remainder_size:            0x0000000000020ea0 (134816)
  sum:                       0x000000003828b000 (942190592)
  pagemask:                  0x0000000000000fff (4095)


On 16/10/08 14:05, "Francesco Iannone" <francesco.iann...@frascati.enea.it>
wrote:

> Hi Jeff
> I used the configure option:
> 
> --enable-ptmalloc2-opt-sbrk
> 
> To solve a segmentation fault in memory allocation with openmpi.1.2.x and
> PGI 7.1-4 and 7.2.
> 
> I have a simple source code (Callocrash.c) as example of this (see belowe).
> 
> Could you test this code on a node with 8 Gbyte of RAM and RedHat enterprise
> 4+ openmpi 1.2.x, PGI 7.1-4.
> 
> I compiled it with:
> 
>  pgcc -o Callocrash Callocreash.c   (it's ok)
>  gnu4 -o Callocrash Callocreash.c   (it's ok)
>  mpicc -o Callocrash Callocreash.c   (Segmentation fault in sysMALLOC when
> it has to allocate 622947588 bytes)
> 
> However thanks in advance
> 
> greetings
> 
> 
> Callocrash.c
> 
> 
> #include <stdio.h>
> #include <stdlib.h>
> 
> int main( int argc, char *argv[])
> {
>         /*
>          *  memory allocations simulation for ~50M nonzeros:
>          *  nd=180 md=350 mdy=420
>          *
>          *  if this program crashes, there is a compiler problem
>          */
>         printf("memory allocations simulation for ~50M nonzeros:  nd=180
> md=350 mdy=420\n");
>         printf("if this program crashes, there check your
> compiler/environment configuration\n");
> 
>         printf("sizeof(int)    %d\n",sizeof(int));
>         printf("sizeof(int*)   %d\n",sizeof(int*));
>         printf("sizeof(size_t) %d\n",sizeof(size_t));
> 
>         if( sizeof(size_t)<8 || sizeof(int*)<8 )
>         {
>                 printf("please compile this program for a 64 bit
> environment!\n");
>         return -1;
>         }
>     
>         int *p;
>     
>         printf("allocation 1/4..\n");
>         p = calloc(47109185,16);
>         if(!p)printf("..failed.\n");
>         printf("allocation 2/4..\n");
>         p = calloc(47109185,4);
>         if(!p)printf("..failed.\n");
>         printf("allocation 3/4..\n");
>         p = calloc(47109185,4);
>         if(!p)printf("..failed.\n");
>         printf("allocation 4/4..\n");
>   
>         p = calloc(622947588,16);
>         if(!p)printf("..failed.\n");
>         if(!p) return -1;
> 
>         printf("allocations test passed (no crash)\n");
>         return 0;
> }
> 
> 
> On 15/10/08 19:42, "Jeff Squyres" <jsquy...@cisco.com> wrote:
> 
>> On Oct 15, 2008, at 9:35 AM, Francesco Iannone wrote:
>> 
>>> I have a cluster of 16 nodes DualCPU DualCore AMD  RAM 16 GB with
>>> InfiniBand
>>> CISCO HCA and switch InfiniBand.
>>> It uses Linux RH Enterprise 4  64 bit , OpenMPI 1.2.7, PGI 7.1-4 and
>>> openib-1.2-7.
>>> 
>>> Hence it means that the option ‹disable-ptmalloc2 is catastrophic in
>>> the
>>> above configuration.
>> 
>> Actually, I notice that in your original message, you said "--disable-
>> ptmalloc2-opt-sbrk", but here you said "--disable-ptmalloc2".  The
>> former is:
>> 
>>                            Only trigger callbacks when sbrk is used
>> for small
>>                            allocations, rather than every call to
>> malloc/free.
>>                            (default: enabled)
>> 
>> So it should be fine to disable; it shouldn't affect overall MPI
>> performance too much.
>> 
>> The latter disables ptmalloc2 entirely (and you'll likely get lower
>> benchmark bandwidth for large messages).
>> 
>> I'm unaware of either of these options leading to problems with the
>> PGI compiler suite; I have tested OMPI v1.2.x with several versions of
>> the PGI compiler without problem (although my latest version is PGI
>> 7.1-4).
> 
> Dr. Francesco Iannone
> Associazione EURATOM-ENEA sulla Fusione
> C.R. ENEA Frascati
> Via E. Fermi 45
> 00044 Frascati (Roma) Italy
> phone 00-39-06-9400-5124
> fax 00-39-06-9400-5524
> mailto:francesco.iann...@frascati.enea.it
> http://www.afs.enea.it/iannone
> 
> 
> 
> _______________________________________________
> users mailing list
> us...@open-mpi.org
> http://www.open-mpi.org/mailman/listinfo.cgi/users

Dr. Francesco Iannone
Associazione EURATOM-ENEA sulla Fusione
C.R. ENEA Frascati
Via E. Fermi 45
00044 Frascati (Roma) Italy
phone 00-39-06-9400-5124
fax 00-39-06-9400-5524
mailto:francesco.iann...@frascati.enea.it
http://www.afs.enea.it/iannone



Reply via email to