Re: [kvm-devel] [PATCH 3/3] virtio PCI device

Avi Kivity
2007-11-22T07:31:46Z

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