> I am unable to start a qemu guest with more than 256M of memory, despite > having 4G in my system. I get ENOMEM and qemu exits. Using 256M or less > works just fine. > > After some debugging, I see that qemu uses valloc(), which then uses > malloc() and that's preventing anything larger than 256M. > > Out of curiosity, I wrote a simple test program that used valloc() to ask > for 256M. Then I tried 512M, and got the failure I expected. Debugging > passed NKMEMPAGES in front of my eyes and I was curious what changing that > would have. I built a kernel with: > > option NKMEMPAGES=131072 > > My test program was able to request 536678400 bytes and no more, short of > 512M by 192512 bytes, or 47 pages on my system. > > Despite that test, qemu still wouldn't have any of it and refused to start > guests with more than 256M. I really am at a loss. Anyone have any > suggestions? > > I am back to running GENERIC.MP unmodified on OpenBSD 4.9.
I have tried qemu-13 with more than 1G memory just fine on amd64. So this is a recent regression. what qemu version? If you increase pagecache size using malloc.conf, does it allow you to go higher? (man malloc.conf)