[Code Bounty] NVMM hypervisor landed in DragonFly
Aaron LI <[email protected]> Sun, 8 Aug 2021 12:25:02 +0800
| Newsgroups | gmane.os.dragonfly-bsd.kernel,gmane.os.dragonfly-bsd.user |
|---|---|
| Message-ID | <[email protected]> |
Hi DFlyers, As you might already know, the NVMM hypervisor has landed in DragonFly for a= while and it's working quite well. So I think the hypervisor code bounty h= as been now accomplished. Actually, I was interested in virtualization/hypervisor and porting one (lik= e bhyve/nvmm) to DragonFly for quite some time, but I had no idea whether I c= ould actually achieve anything. Nevertheless, I started learning x86 virtua= lization and looking at NVMM since April this year. It took me quite some efforts to understand the basic virtualization logic. = (x86 is really complicated and I'm still a newbie...) The NVMM partial por= t did by Jarom=C3=ADr Dole=C4=8Dek (of Moritz Systems) in September last yea= r helped a lot in getting we started with the porting. Then I struggled wit= h the vm/pmap subsystems and finally got NVMM barely working with the simple= example in late June. After that, Matt greatly helped me with various debu= gging and testing, as well as the QEMU patches. We also contacted Maxime Vi= llard and he generously shared us with the various improvements to the NVMM c= ode, and he also kindly offered to review the port and gave us some insights= and feedbacks in July. I merged the NVMM port into master branch on July 2= 0. swildner then helped fix some build issues and improved the man pages. O= n August 3, tuxillo helped merge the updated QEMU port into DeltaPorts, so w= e can simply 'pkg install qemu' at a later time. Great thanks to all of them for their kind help. I've updated the Code Bounties [1] page to include the porting results. I also created the NVMM HowTo [2] page to guide the NVMM usage on DragonFly.= There are still some important and interesting things to do with NVMM itself= or by leveraging NVMM. Some of my ideas are: * Fix vkernel by using NVMM. * Clock para-virtualization, something like kvm-clock. * Improve VirtIO drivers and add missing ones (like virtio-console). * Improve QEMU support for NVMM and DragonFly (like qemu-guest-agent). * DragonFly graphics/audio/usb/etc. support in QEMU guest. By the way, Haiku OS is also considering to re-port NVMM based on our versio= n [3]. Welcome to try NVMM and report back. I'm looking forward to seeing it becom= es even better :) Cheers, Aaron [1] Code Bounties: https://www.dragonflybsd.org/docs/developer/Code_Bounties= / [2] NVMM HowTo: https://www.dragonflybsd.org/docs/docs/howtos/nvmm/ [3] https://discuss.haiku-os.org/t/code-nvmm-to-dragonfly-its-more-os-indepe= ndence/11126=