A discussion has been started about a next-generation API for Linux KVM (Kernel-based Virtual Machine) virtualization.
Avi Kivity of Red Hat has written to the KVM developers
in a proposal for a brand new API for KVM. The API would rework syscalls, state accessors, KVM's device model, ioeventfd/irqfd, guest memory management, and the vCPU FD mmap area, among other potential improvements over the existing API.
The existing KVM API can't be abandoned immediately, but this would be incremental and both APIs would be supported over several years. Here is Avi's reasoning for the need for a new API:
The kvm api has been accumulating cruft for several years now. This is due to feature creep, fixing mistakes, experience gained by the maintainers and developers on how to do things, ports to new architectures, and simply as a side effect of a code base that is developed slowly and incrementally.
While I don't think we can justify a complete revamp of the API now, I'm writing this as a thought experiment to see where a from-scratch API can take us. Of course, if we do implement this, the new and old APIs will have to be supported side by side for several years.
The feedback to this proposal for a new KVM API has been largely positive among other KVM virtualization developers.