CVSROOT: /cvs Module name: src Changes by: d...@cvs.openbsd.org 2023/04/27 16:47:27
Modified files: usr.sbin/vmd : Makefile dhcp.c vioqcow2.c vioraw.c virtio.c virtio.h vm.c vmd.c vmd.h vmm.c Added files: usr.sbin/vmd : vioblk.c vionet.c Log message: vmd(8): introduce multi-process model for virtio devices. Isolate virtio network and block device emulation in dedicated processes, forked and exec'd from the vm process. This allows for tightening pledge promises to just "stdio". Communication between the vcpu's and these devices now occurs via imsg channels, which adds the benefit of not always blocking the vcpu thread while emulating the device. With this commit, it's possible that vmd is the first open source hypervisor that *defaults* to a multi-process device emulation model without requiring any additional configuration from the operator. Testing help from phessler@ and Mischa Peters. ok mlarkin@