On Nov 23, 2005, at 2:56 PM, Arne Wörner wrote:

--- Michael Conlen <[EMAIL PROTECTED]> wrote:
On Nov 23, 2005, at 1:20 PM, Arne Wörner wrote:
Maybe the stack size matters in ur case somehow? I can see,
that
it is limited to 1GB, isn't it?

I found something funny, too:
limit
cputime      unlimited
filesize     unlimited
datasize     524288 kbytes
stacksize    65536 kbytes
coredumpsize unlimited
memoryuse    unlimited
vmemoryuse   unlimited
descriptors  6861
memorylocked unlimited
maxproc      3430
sbsize       unlimited
c++ -o mmap mmap.c
./mmap 757254143
sz2d22c7ff00000 r673435648 errno0
cat mmap.c
#include <sys/mman.h>
#include <stdio.h>
#include <errno.h>
#include <stdlib.h>

int main(const int argc, char ** argv) {
        void * r =


mmap(0,atoi(argv[argc-1])*1024LL*1024,0,MAP_ANON|MAP_PRIVATE,-1,0);
        printf("sz%llx r%d
errno%d\n",atoi(argv[argc-1])*1024LL*1024,r,errno);
        return 0;
}
<EOF>

-Arne


At this point I have updated the kernel to include
2 GB for stack and data size and edited the
loader.conf to include those options as well
with the same result. I really believe the system is
being limited elsewhere.

But why can I get so much memory (722TB) with mmap (even with the
default MAXDSIZ in my kernel)?

Maybe we use mmap(2) the wrong way (I just used it with files: I
found it fancier to write to a file via mmap(2)'ed memory)?

Well, I'm not trying to use mmap() this way per say, java 1.4.2 and 1.5.0 built from ports is.

I have verified that I can malloc() much more memory that I can mmap (). I'm looking at the code for mmap() and I can't find a resource limit that would normally return ENOMEM that is set too low.

--
Michael Conlen_______________________________________________
freebsd-performance@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-performance
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to