> 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)

Reply via email to