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 has 
been now accomplished.

Actually, I was interested in virtualization/hypervisor and porting one (like 
bhyve/nvmm) to DragonFly for quite some time, but I had no idea whether I could 
actually achieve anything.  Nevertheless, I started learning x86 virtualization 
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 port 
did by Jaromír Doleček (of Moritz Systems) in September last year helped a lot 
in getting we started with the porting.  Then I struggled with 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 debugging and testing, 
as well as the QEMU patches.  We also contacted Maxime Villard and he 
generously shared us with the various improvements to the NVMM code, 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 20.  swildner then 
helped fix some build issues and improved the man pages.  On August 3, tuxillo 
helped merge the updated QEMU port into DeltaPorts, so we 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 version 
[3].

Welcome to try NVMM and report back.  I'm looking forward to seeing it becomes 
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-independence/11126

Reply via email to