Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 23 Nov 2005 14:32:40 -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:  <86229116-3E10-4277-B93D-3A9436C2F37A@obmail.net>
In-Reply-To: <20051123182049.99670.qmail@web30301.mail.mud.yahoo.com>
References:  <20051123182049.99670.qmail@web30301.mail.mud.yahoo.com>

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

On Nov 23, 2005, at 1:20 PM, Arne W=F6rner wrote:

> --- Michael Conlen <m@obmail.net> wrote:
>> On Nov 23, 2005, at 12:11 PM, Arne W=F6rner wrote:
>>> --- Michael Conlen <m@obmail.net> wrote:
>>>> I'm trying to tune the system to allow very large
>>>> mmap()'s in a
>>>>
>>> I had a similar problem with shared memory.
>>>
>>> I found an option in /sys/conf/NOTES.
>>>
>>> I think it could help in your case, if u increase
>>> % options  MAXDSIZ=3D(1024UL*1024*1024)
>>> % options  MAXSSIZ=3D(128UL*1024*1024)
>>> % options  DFLDSIZ=3D(1024UL*1024*1024)
>>> apropriately.
>>>
>>> E. g. in your /sys/<arch>/conf/<kernel name>
>>> options MAXDSIZ=3D(2000UL*1024*1024)
>>>
>>> But I dont know, if that is a good idea... Maybe
>>> you should use nextboot(8) in case your box does
>>> not like the new kernel... :-)
>>
>> I've made those changes which are reflected in the
>> output from limit.
>>
> Oh... Ok... That sounds plausible...
>
> 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 =20=

data size and edited the loader.conf to include those options as well =20=

with the same result. I really believe the system is being limited =20
elsewhere.

--
Michael Conlen=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?86229116-3E10-4277-B93D-3A9436C2F37A>