mmap problem with diablo-1.5.0 on 6.1-RELEASE i386

Michael Rogers m.rogers at cs.ucl.ac.uk
Sat Apr 5 11:28:44 UTC 2008


Kurt,

Thank you so much, that solved the problem!

Cheers,
Michael

Kurt Miller wrote:
> Most of the memory the jdk uses is from mmap. Using a very high
> data seg size ulimit has the effect of reducing the amount of memory
> an application can mmap (at least on some FreeBSD versions). Try
> reducing your data seg size ulimit to 819200 kbytes. The port versions
> of the jdks do this automatically for you (e.g. cap data seg size to 800M).
> 
> -Kurt
> 
> On Friday 04 April 2008 11:35:47 am Michael Rogers wrote:
>> Hi,
>>
>> I'm having problems running Java on FreeBSD 6.1-RELEASE i386. The JVM seems 
>> to be unable to allocate memory for the code cache using mmap. Here's what 
>> I see on the command line:
>>
>> ~ $ java -version
>> Error occurred during initialization of VM
>> Could not reserve enough space for code cache
>> ~ $ uname -mrs
>> FreeBSD 6.1-RELEASE i386
>> ~ $ ulimit -a
>> core file size          (blocks, -c) unlimited
>> data seg size           (kbytes, -d) 2929687
>> file size               (blocks, -f) unlimited
>> max locked memory       (kbytes, -l) unlimited
>> max memory size         (kbytes, -m) unlimited
>> open files                      (-n) 11095
>> pipe size            (512 bytes, -p) 1
>> stack size              (kbytes, -s) 65536
>> cpu time               (seconds, -t) unlimited
>> max user processes              (-u) 5547
>> virtual memory          (kbytes, -v) unlimited
>> ~ $
>>
>> Here's the tail of the kdump output:
>>
>>  48178 java     CALL  mmap(0,0x2000000,0,0x1042,0xffffffff,0,0,0)
>>  48178 java     RET   mmap -1 errno 12 Cannot allocate memory
>>  48178 java     CALL  write(0x1,0xbfbfd2d0,0x2b)
>>  48178 java     GIO   fd 1 wrote 43 bytes
>>        "Error occurred during initialization of VM
>>        "
>>  48178 java     RET   write 43/0x2b
>>  48178 java     CALL  write(0x1,0xbfbfd2d0,0x2d)
>>  48178 java     GIO   fd 1 wrote 45 bytes
>>        "Could not reserve enough space for code cache"
>>  48178 java     RET   write 45/0x2d
>>  48178 java     CALL  write(0x1,0xbb2ce361,0x1)
>>  48178 java     GIO   fd 1 wrote 1 byte
>>        "
>>        "
>>  48178 java     RET   write 1
>>  48178 java     CALL  unlink(0x8064500)
>>  48178 java     NAMI  "/tmp/hsperfdata_mrogers/48178"
>>  48178 java     RET   unlink 0
>>  48178 java     CALL  exit(0x1)
>>
>> So it seems the mmap call is the problem, but I'm not sure why. I get the 
>> same results with the installed version of Java and a fresh download of 
>> diablo-1.5.0 from freebsdfoundation.org. I also have access to a FreeBSD 
>> 6.2-RELEASE amd64 box where diablo-1.5.0 works fine; here's the 
>> corresponding command line and kdump output for comparison:
>>
>> ~ $ java -version
>> java version "1.5.0"
>> Java(TM) 2 Runtime Environment, Standard Edition (build diablo-1.5.0-b01)
>> Java HotSpot(TM) 64-Bit Server VM (build diablo-1.5.0_07-b01, mixed mode)
>> ~ $ uname -mrs
>> FreeBSD 6.2-RELEASE amd64
>> ~ $ ulimit -a
>> core file size          (blocks, -c) unlimited
>> data seg size           (kbytes, -d) 33554432
>> file size               (blocks, -f) unlimited
>> max locked memory       (kbytes, -l) unlimited
>> max memory size         (kbytes, -m) unlimited
>> open files                      (-n) 11095
>> pipe size            (512 bytes, -p) 1
>> stack size              (kbytes, -s) 524288
>> cpu time               (seconds, -t) unlimited
>> max user processes              (-u) 5547
>> virtual memory          (kbytes, -v) unlimited
>> ~ $
>>
>>  31867 java     CALL  mmap(0,0x3000000,0,0x1042,0xffffffff,0,0)
>>  31867 java     RET   mmap 78553088/0x804aea000
>>  31867 java     CALL  mmap(0x804aea000,0x270000,0x7,0x1012,0xffffffff,0,0)
>>  31867 java     RET   mmap 78553088/0x804aea000
>>  ... etc
>>
>> Any thoughts on what could be causing this problem? Could it be something 
>> to do with ulimit? Unfortunately I don't have root on either of the boxes 
>> so I can't easily experiment with changing the limits.
>>
>> Thanks in advance,
>> Michael
>> _______________________________________________
>> freebsd-java at freebsd.org mailing list
>> http://lists.freebsd.org/mailman/listinfo/freebsd-java
>> To unsubscribe, send any mail to "freebsd-java-unsubscribe at freebsd.org"
>>
> 
> 



More information about the freebsd-java mailing list