Hi Cornelia, Thanks for the insightful comments and ideas. Answers below: On lun, ago 08 2022 at 15:47:06, Cornelia Huck <cohuck@xxxxxxxxxx> wrote: > Hm... so I'm not quite happy with those two paragraphs, but I'm not sure > how to make it better. > > - While the origins of virtio are hypervisor implementations, the > standard is describing the mechanisms of device <-> driver > communication, regardless whether the device is a hardware entity or > something emulated by a hypervisor. > - I'm not quite sure what you are referring to with "real host > devices". We can have e.g. a real disk that is handed to a guest via > virtio-blk as a whole, or we can have some kind of file that is > exposed via virtio-blk. Other device types can also be completely > emulated. > - The OS picks the driver depending on what device is discovers; virtio > device drivers are not any different from other device drivers in that > regard. > > So I think the key pieces of virtio are the following: > > - it is an open standard > - it describes a protocol, which can be used to implement a lot of > different device types > - those devices are exposed to the operating system via standard > mechanisms such as PCI > - virtio devices can be implemented in various ways, such as in > hypervisors (more common) or as a real hardware device > > For the remainder of this document, it is probably fine to focus on the > hypervisor use case. How about this as an introduction? Virtio is an open standard that defines a protocol to communicate drivers and devices of different types, see Chapter 5 ("Device Types") of the virtio spec `[1]`_. Originally developed as a standard for paravirtualized devices implemented by a hypervisor, it can be used to interface any compliant device (real or emulated) with a driver. For illustrative purposes, this document will focus on the common case of a Linux kernel running in a virtual machine and using paravirtualized devices provided by the hypervisor, which exposes them as virtio devices via standard mechanisms such as PCI. > s/in/on/ ? > s/RedHat/Red Hat/ :) Got it. > See my comments above, virtio devices can also be fully emulated or real > hardware devices. > > [...] > > I think we should not make any statement regarding frequency of new > additions; sometimes, there's a flurry of activity, sometimes, there's > nothing for ages :) Ok, I'll simplify the intro to this: This document serves as a basic guideline for driver programmers that need to hack a new virtio driver or understand the essentials of the existing ones. See :ref:`Virtio on Linux <virtio>` for a general overview of virtio. > s/should/needs to/ ? Ack. > s/defined/added/ ? Ack. > Maybe "Device ids need to be at least reserved in the virtio spec before > being added to that file." ? Sure, I'll add all of these to the next version. Cheers, Ricardo _______________________________________________ Virtualization mailing list Virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linuxfoundation.org/mailman/listinfo/virtualization