mmap max size (qemu VM memsize limit)

Guy Helmer ghelmer at
Mon Nov 26 07:16:29 PST 2007

Guy Helmer wrote:
> Gergely CZUCZY wrote:
>> Hello,
>> I'm trying to set up a qemu with 4G memory to the host system
>> on a 7-BETA2, and I've hit some kind of limit in freebsd.
>> When i give more then ~2000MB of memory to qemu, it returns
>> an after trying to mmap() it, saying "Could not map physical memory".
>> At the end of mmap(2) there's a note saying:
>> "     The len argument is limited to the maximum file size or 
>> available user-
>>      land address space.  Files may not be able to be made more than 
>> 1TB large
>>      on 32 bit systems due to file systems restrictions and bugs, but 
>> address
>>      space is far more restrictive.  Larger files may be possible on 
>> 64 bit
>>      systems."
>> I guess I've found this limit. I've tried to check a few sysctls but 
>> I wasn't
>> able to find the one effecting this limit.
>> Could someone point me into the right direction in increasing the 
>> maximum
>> mmap-able size?
> If you are using the 32-bit i386 system, then you could be limited by 
> a couple of things, the kern.maxdsiz loader tunable or the datasize 
> limit are likely.  On i386, I believe 1073741824 (1G) is the default 
> maxdsiz.  With 4GB of RAM, I think you ought to be able to double 
> kern.maxdsiz in /boot/loader.conf.
Sorry to respond to my own posting: I just realized that the length 
value for mmap(), a size_t value, will become negative on i386 for 
values 2GB and over.  That might be the source of your trouble.


Guy Helmer, Ph.D.
Chief System Architect
Palisade Systems, Inc.

More information about the freebsd-stable mailing list