This is the mail archive of the cygwin@sources.redhat.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

RE: Memory problem


Hi Tony,

NT is a bit more vulnerable regarding memory fragmentation than most Unixes.
If you want 450MB in one big array, it may happen that the memory space has
become so fragmented, there is no 450MB slot available anymore in the 2GB or
virtual memory space that you have at your disposition.

some tips:
- your latest error message doesn't sound like memory failure. Have you
fully debugged your program?
- make absolutely sure that you have *no* memory leaks. Use 'purify' on SGI.
- separate the way small blocks are allocated from the way big blocks are
allocated. One way is to allocate small block in large chunks. Another way
is to use malloc()/free() for small objects, but
VirtualAlloc()/VirtualFree() for big ones (allocates chunks of 64K). This
attacks the fragmentation problem.
- if you use multiple threads (you probably don't) it might interest you
that the default virtual memory size reserved for a thread stack is 32MB on
NT. Furthermore, (an older version I know of) Cygwin does not give back this
space when a thread exits: each thread leaks 32MB of virtual memory. You can
reduce the thread stack space using the M$ EDITBIN.EXE program (e.g. to
1MB).
- check when gdb (-nw) starts up your program which dll's are loaded, and at
which addresses. If you depend on many dll's they might fragment your
virtual memory space. Use the M$ REBASE.EXE utility to change the address at
which they are loaded.
- If you have too much money, you might consider switching to NT Enterprise
Edition (pay some $10,000 for decrippling your OS), which gives you 3GB of
virtual memory iso the standard 2GB. In terms of W2K, this shameless M$
product is called "W2K Advanced Server". Again, after compiling, you must
enable the '3GB option' in your compiled binary with the EDITBIN program.

best regards,

Peter


-----Original Message-----
From: Tony_LELIEVRE@pechiney.com [mailto:Tony_LELIEVRE@pechiney.com]
Sent: Wednesday, February 28, 2001 10:58 AM
To: cygwin@cygwin.com
Subject: Memory problem


Here I am again ! (see my former message VirtualAlloc failed : 26/02/2001
09h21)

I have now installed CygWin 1.1.8 on NT 4.0.

I have a finite element program in c++ which works on SGI. I want it to work
on NT.

I compiled this program with cygwin, using the bash and the new library
gcc-3 : everything went OK.

With cygnus (I had before : see my former message Virtual Alloc failed), I
could run small programs.

Now, I always have a problem of memory. This is the message I have with one
of the data file :

      0 [sig] v 270 stackdump: Dumping stack trace to v.exe.stackdump
Aborted (core dumped)

By the way, I cannot find the core file.

This file v.exe.stackdump is the following (I guess it won't help you,
but...) :

Stack trace:
Frame     Function  Args
025CBDD4  77F04F37  (00000078, 0000EA60, 00000000, 610433F9)
025CBE24  77F04F37  (00000000, 025CC9A8, 025CC934, 61041CE5)
025CBE74  61041FF2  (00000006, 0000010E, 0049D4C0, 004769BA)
025CBEA4  6103FBA8  (0000010E, 00000006, 025CA65C, 00000000)
025CBED4  6103FD3E  (0000010E, 00000006, 025CBFB4, 00000000)
025CBEF4  61076584  (6108D010, 0000010E, 00000006, 00410518)
025CBF24  6106C278  (6108D010, 00000006, 025CBF74, 0049524D)
025CBF44  6106C250  (00000006, 00000002, 025CA65C, 00000000)
025CBF64  61068E8C  (00000000, 00000000, 025CBF84, 00475AAD)
025CBF74  00475A9F  (025CC934, 00000002, 025CC5F4, 00475CBF)
025CBF84  00475AAD  (0049D4C4, 0049D4C0, 0049D4C0, 00000000)
025CC5F4  00475CBF  (025CF6E4, 025CFD7C, 025CC934, 025CC658)
025CC864  0040A5C4  (025CC934, 025CFD90, 00000000, 40490000)
025CC8F4  00408ACD  (025CC934, 1A020CA8, 004010D1, 004010C0)
025CFEB4  00401168  (00000002, 1A020CA8, 0A010008, FFFFFFFE)
025CFF10  61003859  (00000000, 00000000, 77F863D3, 77F863DB)
End of stack trace (more stack frames may be present)

This error always occured at the same moment, during the execution of the
program.

The execution requires about 450 Mo on SGI, and the PC has 768 Mo RAM. I
don't understand why there is a problem of memory.

Should I change things in my program in order to make it work under NT ?
Should I had some options when I run gcc in order to allow the program to
use more memory ?

I hope you have an idea of the problem...

Thanks a lot,

Tony LELIEVRE.

This is my cygcheck -r -s -v

Cygnus Win95/NT Configuration Diagnostics
Current System Time: Wed Feb 28 09:15:46 2001

WinNT Ver 4.0 build 1381 Service Pack 6

Path:  /usr/local/bin
  /usr/bin
  /bin
  /cygdrive/c/dmi/win32/bin
  /cygdrive/c/WINNT/system32
  /cygdrive/c/WINNT
  /cygdrive/c/cygnus/cygwin~1/h-i586~1/bin
  .

SysDir: C:\WINNT\System32
WinDir: C:\WINNT

Here's some environment variables that may affect cygwin:
PWD = `/cygdrive/c/Mistral/src/Mistral/TestCuve'
USER = `tony'
MAKE_MODE = `unix'
HOME = `/home/tony'

Here's the rest of your environment variables:
NUMBER_OF_PROCESSORS = `2'
PROMPT = `$P$G'
LOGONSERVER = `\\WSNT1'
OS2LIBPATH = `C:\WINNT\system32\os2\dll;'
COMSPEC = `C:\WINNT\system32\cmd.exe'
!C: = `C:\CygWin\bin'
SYSTEMDRIVE = `C:'
HOSTNAME = `WSNT1'
PROCESSOR_REVISION = `0803'
PATHEXT = `.COM;.EXE;.BAT;.CMD'
COMPUTERNAME = `WSNT1'
WINDIR = `C:\WINNT'
USERPROFILE = `C:\WINNT\Profiles\tony'
PS1 = `\[\033]0;\w\007
\033[32m\]\u@\h \[\033[33m\w\033[0m\]
$ '
MACHTYPE = `i686-pc-cygwin'
ANSYS56_DIR = `C:\ANSYS56'
PROCESSOR_IDENTIFIER = `x86 Family 6 Model 8 Stepping 3, GenuineIntel'
WIN32DMIPATH = `c:\dmi\win32'
P_SCHEMA = `C:\ANSYS56\ac4\schema'
OS = `Windows_NT'
OLDPWD = `/cygdrive/c/Mistral/src/Mistral'
PROCESSOR_ARCHITECTURE = `x86'
TEMP = `/cygdrive/c/TEMP'
PROCESSOR_LEVEL = `6'
SYSTEMROOT = `C:\WINNT'
ANSYS_SYSDIR = `Intel'
HOMEDRIVE = `C:'
SHLVL = `1'
HOMEPATH = `\'
USERDOMAIN = `WSNT1'
USERNAME = `tony'
SHELL = `/bin/sh'
HOSTTYPE = `i686'
OSTYPE = `cygwin'
TERM = `cygwin'
_ = `/usr/bin/cygcheck'

Scanning registry for keys with `Cygnus' in them...
HKEY_CURRENT_USER\Software\Cygnus Solutions
HKEY_CURRENT_USER\Software\Cygnus Solutions\Cygwin
HKEY_CURRENT_USER\Software\Cygnus Solutions\Cygwin\mounts v2
  (default) = `/cygdrive'
  cygdrive flags = 0x00000022
HKEY_CURRENT_USER\Software\Cygnus Solutions\Cygwin\mounts v2\/
  (default) = `C:/cygwin'
  flags = 0x00000002
HKEY_CURRENT_USER\Software\Cygnus Solutions\Cygwin\mounts v2\/usr/bin
  (default) = `C:/cygwin/bin'
  flags = 0x00000002
HKEY_CURRENT_USER\Software\Cygnus Solutions\Cygwin\mounts v2\/usr/lib
  (default) = `C:/cygwin/lib'
  flags = 0x00000002
HKEY_CURRENT_USER\Software\Cygnus Solutions\Cygwin\Program Options

Listing available drives...
Drv Type        Size   Free Flags              Name
a:  fd           N/A    N/A
c:  hd  NTFS    8032Mb  50% CP CS UN PA FC
d:  cd           N/A    N/A
fd=floppy, hd=hard drive, cd=CD-ROM, net=Network Share
CP=Case Preserving, CS=Case Sensitive, UN=Unicode
PA=Persistent ACLS, FC=File Compression, VC=Volume Compression

Mount entries: these map POSIX directories to your NT drives.
-NT-  -POSIX-  -Type-  -Flags-
C:\cygwin\bin  /usr/bin  user    binmode
C:\cygwin\lib  /usr/lib  user    binmode
C:\cygwin  /        user    binmode

Looking to see where common programs can be found, if at all...
Found: C:\cygwin\bin\bash.exe
Found: c:\cygnus\cygwin~1\h-i586~1\bin\bash.exe
Warning: C:\cygwin\bin\bash.exe hides
c:\cygnus\cygwin~1\h-i586~1\bin\bash.exe
Found: C:\cygwin\bin\cat.exe
Found: c:\cygnus\cygwin~1\h-i586~1\bin\cat.exe
Warning: C:\cygwin\bin\cat.exe hides c:\cygnus\cygwin~1\h-i586~1\bin\cat.exe
Found: C:\cygwin\bin\cpp.exe
Found: C:\cygwin\bin\find.exe
Found: c:\cygnus\cygwin~1\h-i586~1\bin\find.exe
Warning: C:\cygwin\bin\find.exe hides
c:\cygnus\cygwin~1\h-i586~1\bin\find.exe
Found: C:\cygwin\bin\gcc.exe
Found: c:\cygnus\cygwin~1\h-i586~1\bin\gcc.exe
Warning: C:\cygwin\bin\gcc.exe hides c:\cygnus\cygwin~1\h-i586~1\bin\gcc.exe
Found: C:\cygwin\bin\gdb.exe
Found: c:\cygnus\cygwin~1\h-i586~1\bin\gdb.exe
Warning: C:\cygwin\bin\gdb.exe hides c:\cygnus\cygwin~1\h-i586~1\bin\gdb.exe
Found: C:\cygwin\bin\ld.exe
Found: c:\cygnus\cygwin~1\h-i586~1\bin\ld.exe
Warning: C:\cygwin\bin\ld.exe hides c:\cygnus\cygwin~1\h-i586~1\bin\ld.exe
Found: C:\cygwin\bin\ls.exe
Found: c:\cygnus\cygwin~1\h-i586~1\bin\ls.exe
Warning: C:\cygwin\bin\ls.exe hides c:\cygnus\cygwin~1\h-i586~1\bin\ls.exe
Found: C:\cygwin\bin\make.exe
Found: c:\cygnus\cygwin~1\h-i586~1\bin\make.exe
Warning: C:\cygwin\bin\make.exe hides
c:\cygnus\cygwin~1\h-i586~1\bin\make.exe
Found: C:\cygwin\bin\sh.exe
Found: c:\cygnus\cygwin~1\h-i586~1\bin\sh.exe
Warning: C:\cygwin\bin\sh.exe hides c:\cygnus\cygwin~1\h-i586~1\bin\sh.exe

Looking for various Cygnus DLLs...  (-v gives version info)
   56k 2000/12/03 C:\cygwin\bin\cygbz21.0.dll - os=4.0 img=1.0 sys=4.0
                  "cygbz21.0.dll" v0.0 ts=2000/11/20 23:53
   82k 2001/01/21 C:\cygwin\bin\cygform5.dll - os=4.0 img=1.0 sys=4.0
                  "cygform5.dll" v0.0 ts=2001/1/21 20:39
   18k 2000/10/23 C:\cygwin\bin\cyggdbm.dll - os=4.0 img=1.0 sys=4.0
                  "cyggdbm.dll" v0.0 ts=2000/10/23 2:26
   17k 2001/01/07 C:\cygwin\bin\cyghistory4.dll - os=4.0 img=1.0 sys=4.0
                  "cyghistory4.dll" v0.0 ts=2001/1/7 4:34
   14k 2000/10/23 C:\cygwin\bin\cygintl.dll - os=4.0 img=1.0 sys=4.0
                  "cygintl.dll" v0.0 ts=2000/10/23 19:02
   81k 2000/12/05 C:\cygwin\bin\cygitcl30.dll - os=4.0 img=1.0 sys=4.0
                  "cygitcl30.dll" v0.0 ts=2000/11/26 1:43
   35k 2000/12/05 C:\cygwin\bin\cygitk30.dll - os=4.0 img=1.0 sys=4.0
                  "cygitk30.dll" v0.0 ts=2000/11/26 1:43
   45k 2000/10/22 C:\cygwin\bin\cygjbig1.dll - os=4.0 img=1.0 sys=4.0
                  "cygjbig1.dll" v0.0 ts=2000/10/22 23:06
  119k 2000/10/23 C:\cygwin\bin\cygjpeg6b.dll - os=4.0 img=1.0 sys=4.0
                  "cygjpeg6b.dll" v0.0 ts=2000/10/23 0:58
   53k 2001/01/21 C:\cygwin\bin\cygmenu5.dll - os=4.0 img=1.0 sys=4.0
                  "cygmenu5.dll" v0.0 ts=2001/1/21 20:39
  414k 2001/01/21 C:\cygwin\bin\cygncurses++5.dll - os=4.0 img=1.0 sys=4.0
                  "cygncurses++5.dll" v0.0 ts=2001/1/21 20:40
  299k 2001/01/21 C:\cygwin\bin\cygncurses5.dll - os=4.0 img=1.0 sys=4.0
                  "cygncurses5.dll" v0.0 ts=2001/1/21 20:38
   34k 2001/01/21 C:\cygwin\bin\cygpanel5.dll - os=4.0 img=1.0 sys=4.0
                  "cygpanel5.dll" v0.0 ts=2001/1/21 20:38
  163k 2001/02/03 C:\cygwin\bin\cygpng2.dll - os=4.0 img=1.0 sys=4.0
                  "cygpng2.dll" v0.0 ts=2001/2/3 21:21
  108k 2001/01/07 C:\cygwin\bin\cygreadline4.dll - os=4.0 img=1.0 sys=4.0
                  "cygreadline4.dll" v0.0 ts=2001/1/7 4:34
  390k 2000/12/05 C:\cygwin\bin\cygtcl80.dll - os=4.0 img=1.0 sys=4.0
                  "cygtcl80.dll" v0.0 ts=2000/11/26 1:39
    5k 2000/12/05 C:\cygwin\bin\cygtclpip80.dll - os=4.0 img=1.0 sys=4.0
   10k 2000/12/05 C:\cygwin\bin\cygtclreg80.dll - os=4.0 img=1.0 sys=4.0
                  "cygtclreg80.dll" v0.0 ts=2000/11/26 1:39
  243k 2000/10/23 C:\cygwin\bin\cygtiff3.dll - os=4.0 img=1.0 sys=4.0
                  "cygtiff3.dll" v0.0 ts=2000/10/23 1:14
  623k 2000/12/05 C:\cygwin\bin\cygtk80.dll - os=4.0 img=1.0 sys=4.0
                  "cygtk80.dll" v0.0 ts=2000/11/26 1:43
   41k 2000/11/20 C:\cygwin\bin\cygXpm-noX4.dll - os=4.0 img=1.0 sys=4.0
                  "cygXpm-noX4.dll" v0.0 ts=2000/11/20 2:41
   45k 2000/11/20 C:\cygwin\bin\cygXpm-X4.dll - os=4.0 img=1.0 sys=4.0
                  "cygXpm-X4.dll" v0.0 ts=2000/11/20 2:45
   49k 2001/02/03 C:\cygwin\bin\cygz.dll - os=4.0 img=1.0 sys=4.0
                  "cygz.dll" v0.0 ts=2001/2/3 20:35
  615k 2001/01/31 C:\cygwin\bin\cygwin1.dll - os=4.0 img=1.0 sys=4.0
                  "cygwin1.dll" v0.0 ts=2001/1/31 15:08
    Cygwin DLL version info:
        dll major: 1001
        dll minor: 8
        dll epoch: 19
        dll bad signal mask: 19005
        dll old termios: 5
        dll malloc env: 28
        api major: 0
        api minor: 34
        shared data: 3
        dll identifier: cygwin1
        mount registry: 2
        cygnus registry name: Cygnus Solutions
        cygwin registry name: Cygwin
        program options name: Program Options
        cygwin mount registry name: mounts v2
        cygdrive flags: cygdrive flags
        cygdrive prefix: cygdrive prefix
        cygdrive default prefix:
        build date: Wed Jan 31 10:08:38 EST 2001
        shared id: cygwin1S3

  371k 1998/12/01 c:\cygnus\cygwin~1\h-i586~1\bin\cygtcl80.dll - os=4.0
img=1.0 sys=4.0
                  "cygtcl80.dll" v0.0 ts=1998/12/1 8:25
    5k 1998/12/01 c:\cygnus\cygwin~1\h-i586~1\bin\cygtclpip80.dll - os=4.0
img=1.0 sys=4.0
   10k 1998/12/01 c:\cygnus\cygwin~1\h-i586~1\bin\cygtclreg80.dll - os=4.0
img=1.0 sys=4.0
                  "cygtclreg80.dll" v0.0 ts=1998/12/1 8:25
  600k 1998/12/01 c:\cygnus\cygwin~1\h-i586~1\bin\cygtk80.dll - os=4.0
img=1.0 sys=4.0
                  "cygtk80.dll" v0.0 ts=1998/12/1 8:28
  446k 1998/12/03 c:\cygnus\cygwin~1\h-i586~1\bin\cygwin1.dll - os=4.0
img=1.0 sys=4.0
                  "cygwin1.dll" v0.0 ts=1998/12/4 4:39
    Cygwin DLL version info:
        dll major: 20
        dll minor: 1
        dll epoch: 19
        dll bad signal mask: 19005
        api major: 0
        api minor: 3
        shared data: 1
        dll identifier: cygwin
        mount registry: 1
        cygnus registry name: Cygnus Solutions
        cygwin registry name: CYGWIN.DLL setup
        program options name: Program Options
        cygwin mount registry name: b15.0
        build date: Thu Dec 3 20:39:18 PST 1998
        CVS taggnu-win32-b20-branch:
        shared id: cygwinS1




--
Want to unsubscribe from this list?
Check out: http://cygwin.com/ml/#unsubscribe-simple

--
Want to unsubscribe from this list?
Check out: http://cygwin.com/ml/#unsubscribe-simple


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]