bhyve cannot allocate memory

Shawn Webb lattera at gmail.com
Sun Nov 23 19:43:52 UTC 2014


On Sat, 22 Nov 2014 19:57:07 -0800
Peter Grehan <grehan at freebsd.org> wrote:

> Hi Shawn,
> 
> > Interesting. I'll have to do more digging. Because removing map_at_zero
> > support is the same as keeping it at the default of 0. It's not possible
> > that our ASLR implementation is affecting bhyve, since our ASLR
> > implementation is in sys_mmap and the elf image activator. At this
> > stage, bhyve's vmm.ko is directly accessing vm_map_*, which we haven't
> > touched.
> 
>   One thing you may be able to try is ktrace the bhyveload process and 
> see which syscall is failing.

Oliver fixed the problem. bhyve's vmm.ko uses VM_MIN_ADDRESS, which defaults to NULL in FreeBSD. We modified that to be at 64k to prevent NULL dereferences. Combine that with the removal of map_at_zero, NULL deref is not possible anymore. But since we bumped VM_MIN_ADDRESS up, bhyve's vmm.ko no longer attempts to map at NULL (which it absolutely needs to). The change Oliver made simply uses 0 instead of VM_MIN_ADDRESS. If this is a change FreeBSD wants upstream, we'd love it merged upstream.

Commit for reference: https://github.com/HardenedBSD/hardenedBSD/commit/23bd719ce1e3a8cc42fc8317b1c7c6d9e74dcba0

Thanks,

Shawn


More information about the freebsd-virtualization mailing list