On Wed, Jan 20, 2016 at 05:44:36PM +0100, Christian Weisgerber wrote: > I was wondering about the status of OpenBSD's vmm(4) hypervisor. > Is it ready for some limited use, say, testing a port in an i386 > VM on an amd64 host? > > (TL;DR: nope.) > > There's little information, so I decided to give it a try after > reading the various vmm(4), vm.conf(5), vmd(8), vmctl(8), virtio(4), > etc. man pages. > > First, you need to build a kernel with vmm(4). It is not enabled > in GENERIC yet. You also need an up-to-date /dev since vmd opens > /dev/vmm and /dev/tap0. > > Next: Start vmd, create a disk image (can you use a raw partition > instead?), spin up a VM with an amd64 bsd.rd kernel I had at hand. > > # /etc/rc.d/vmd -f start > # vmctl create /home/bardioc.img -s 4G > # vmctl start -c -k /bsd.rd -m 1G -d /home/bardioc.img -i 1 > > Something's happening! There's a copyright message. And that's > it... I was about to give up when the bsd.rd kernel continued, > successfully booted, and allowed to drop me into a (S)hell. > > Observation: vmd completely hogs one CPU core even if the guest > isn't doing anything. > > Next step: networking. As expected, a vio0 interface showed up > inside the VM, but the man pages don't explain how to connect this > to the outside. Since I had noticed that vmd opens tap0, I created > a bridge on the host and added tap0 and a real interface. I don't > know if that's the intended way, but after manually configuring an > IP address on vio0, I could ping other machines from the guest. \o/ > > ping also showed that time was running three times slower in the > VM than on the outside. Uh-oh. > > I deleted the inet configuration from vio0 and started the installer. > I got as far as the network configuration, when the guest kernel > died with an UVM error--and my patience along with it. > > So, yeah, interesting but not useful yet. >
It is not enabled in GENERIC, so obviously not ready yet :) The CPU usage, time and networking issues are know and should go away after mlarkin@ finished implementing proper interrupt handling. On the userland side, the networking configuration will be changed to a slightly different approach, but I kind of suspended this until the previous issue is solved. But, in fact, I already use vmm for some things, like installing images that I upload to EC2 :) So it is partially useful, at least for me. Thanks for feedback & testing! Reyk