Zachary Amsden wrote:
On Wed, 2007-11-21 at 09:13 +0200, Avi Kivity wrote:
Where the device is implemented is an implementation detail that should
be hidden from the guest, isn't that one of the strengths of
virtualization? Two examples: a file-based block device implemented in
qemu gives you fancy file formats with encryption and compression, while
the same device implemented in the kernel gives you a low-overhead path
directly to a zillion-disk SAN volume. Or a user-level network device
capable of running with the slirp stack and no permissions vs. the
kernel device running copyless most of the time and using a dma engine
for the rest but requiring you to be good friends with the admin.
The user should expect zero reconfigurations moving a VM from one model
to the other.
I think that is pretty insightful, and indeed, is probably the only
reason we would ever consider using a virtio based driver.
But is this really a virtualization problem, and is virtio the right
place to solve it? Doesn't I/O hotplug with multipathing or NIC teaming
provide the same infrastructure in a way that is useful in more than
just a virtualization context?
With the aid of a dictionary I was able to understand about half the
words in the last sentence. Moving from device to device using
hotplug+multipath is complex to configure, available on only some
guests, uses rarely-exercised paths in the guest OS, and only works for
a few types of devices (network and block). Having host independence in
the device means you can change the device implementation for, say, a
display driver (consider, for example, a vmgl+virtio driver, which can
be implemented in userspace or tunneled via virtio-over-tcp to some
remote display without going through userspace, without the guest
knowing about it).
--
error compiling committee.c: too many arguments to function
_______________________________________________
Virtualization mailing list
Virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx
https://lists.linux-foundation.org/mailman/listinfo/virtualization