Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 23 Nov 2005 15:15:18 -0500
From:      Michael Conlen <m@obmail.net>
To:        =?ISO-8859-1?Q?Arne_W=F6rner?= <arne_woerner@yahoo.com>
Cc:        freebsd-performance@freebsd.org
Subject:   Re: mmap()
Message-ID:  <61C1776C-7192-41D8-AE6E-65319B141259@obmail.net>
In-Reply-To: <20051123195647.27712.qmail@web30307.mail.mud.yahoo.com>
References:  <20051123195647.27712.qmail@web30307.mail.mud.yahoo.com>

next in thread | previous in thread | raw e-mail | index | archive | help

On Nov 23, 2005, at 2:56 PM, Arne W=F6rner wrote:

> --- Michael Conlen <m@obmail.net> wrote:
>> On Nov 23, 2005, at 1:20 PM, Arne W=F6rner 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 =3D
>>>
>>
> 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 =20
1.5.0 built from ports is.

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

--
Michael Conlen=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?61C1776C-7192-41D8-AE6E-65319B141259>