On 24 January 2013 14:55, Stefan Hajnoczi stefanha@gmail.com wrote:
On Thu, Jan 24, 2013 at 11:40:24AM +0530, Anup Patel wrote:
IMHO, If we have something like Virtio-desktop specification then all possible guest OSes can have support for it and different hypervisor can emulate it without worrying about guest support.
At this point x86 virtualization is mature and working with a mix of emulated x86 architecture pieces and virtio devices for performance-critical or open-ended functionality that we want to be able to extend.
ARM is getting KVM and virtio-mmio support. It will be in a similar position soon.
Virtio guest drivers have not been implemented widely. The Linux and Windows efforts are driven by the folks who were behind virtio from the start, but Solaris, FreeBSD, and others didn't really jump on the virtio bandwagon.
[Anup] I think other OSes will be motivated to added Virtio drivers if there exists some think like Virtio-desktop specification that is being emulated by many hypervisors.
Given this landscape, what is the advantage of doing a virtio-desktop? It will still need to fall back on ARM or x86 which is already being virtualized and emulated.
[Anup] Virtio-desktop stresses on having minimum architecture dependent devices. Any improvements or additions in Virtio-desktop will be available to other architectures.
Depending on how you see it we either have virtio-desktop already or, if not, I think the experience with virtio adoption suggests other hypervisors and guest OSes will not trip over themselves to implement virtio-desktop.
[Anup] I believe Virtio adoption will increase by having a concrete Virtio-desktop specification and without it Virtio devices are just another way of para-virtualization. In fact, having Virtio-desktop support for an OS will enable it to run under different hypervisors.
What's the advantage over virtualizating an existing ARM or x86 platform and using virtio devices where appropriate?
[Anup] With Virtio-desktop, many platforms can share lot of common code mostly in-form of Virtio devices. We already drivers for most Virtio devices in the mainline Linux kernel. The only missing devices are Virtio-fb, Virtio-input, and Virtio-power from Virtio-desktop perspective. [Anup] Further, Virtio is interface independent which means a Virtio device can be a MMIO-based device or PCI-based device or some other form. [Anup] Most proprietary hypervisors and Xen already have para-virtualized devices which are similar to Virtio devices. In fact, we have wide variety of approaches in para-virtualization. We can think of Virtio and Virtio-desktop as an attempt to standardize para-virtualization in an architecture independent and hypervisor independent way. Of-course, implementation and performance of Virtio devices will vary under different hypervisors.
Stefan
--Anup