Date: Sat, 7 Aug 2010 16:20:03 GMT From: Vernon Schryver <vjs@calcite.rhyolite.com> To: freebsd-bugs@FreeBSD.org Subject: Re: kern/149323: [libc] Applications with large memory footprint failing with mmap(2) - memory allocation errors Message-ID: <201008071620.o77GK3cv047134@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
The following reply was made to PR kern/149323; it has been noted by GNATS. From: Vernon Schryver <vjs@calcite.rhyolite.com> To: bug-followup@FreeBSD.org Cc: rblayzor@inoc.net Subject: Re: kern/149323: [libc] Applications with large memory footprint failing with mmap(2) - memory allocation errors Date: Sat, 7 Aug 2010 16:17:14 GMT The problem does not happen with clean install of i386 Freebsd 8.1 and DCC 2.3.131 on a 32-bit box with 4 GByte of RAM less about 500 MByte of PCI window. The problem does happen after creating /boot/loader.conf.local containing kern.maxdsiz="2048M" and rebooting. It happens when the dccd process reaches about 880 MBytes of mmap()'ed windows into /var/dcc/dcc_db and /var/dcc/dcc_db.hash. `sysctl kern.maxdsiz` on my test system says "kern.maxdsiz: 536870912" without /boot/loader.conf.local but "kern.maxdsiz: 2147483648" with the file. The message try #1 mmap(dcc_db 0xeee000,0x3,0x801,11,0x49b72000): Cannot allocate memory means that mmap(0, 0xeee000,0x3,0x801,11,0x49b72000) returned ENOMEM where FD 11 is the file .../dcc_db The message "try #2 mmap(...) ok" means that mmap() worked after releasing some mmap()'ed memory. I don't remember whether setting kern.maxdsiz was once needed to run a DCC server on FreeBSD. As far as I know it is not needed now. Evidently something happened to the effects of kern.maxdsiz between FreeBSD 7.3 and 8.1 Perhaps the bug can be fixed by merely documenting the new effects of kern.maxdsiz Vernon Schryver vjs@rhyolite.com
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201008071620.o77GK3cv047134>