From: "Alex Bennée" <alex.bennee@linaro.org>
To: Stefan Hajnoczi <stefanha@redhat.com>
Cc: virtio-comment@lists.oasis-open.org,
Nikos Dragazis <ndragazis@arrikto.com>
Subject: [virtio-comment] Re: [RFC PATCH] introduction.tex: introduce a glossary of terms
Date: Tue, 21 Jul 2020 12:04:06 +0100 [thread overview]
Message-ID: <871rl5w2mx.fsf@linaro.org> (raw)
In-Reply-To: <20200721102721.GA172689@stefanha-x1.localdomain>
Stefan Hajnoczi <stefanha@redhat.com> writes:
> On Mon, Jul 20, 2020 at 03:54:51PM +0100, Alex Bennée wrote:
>> It is useful to have a glossary of common terms at the front of the
>> document to define common terms we are going to use throughout the
>> specification. Whilst writing this list I notice we refer to a device
>> in host terms - perhaps we need slightly tighter definitions of what a
>> device is? For discussion I've defined a Device Interface in terms of
>> the guest visible side and a Device Backend in terms of what runs on
>> the host.
>>
>> Cc: Nikos Dragazis <ndragazis@arrikto.com>
>> Cc: Stefan Hajnoczi <stefanha@redhat.com>
>> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
>> ---
>> introduction.tex | 30 ++++++++++++++++++++++++++++++
>> 1 file changed, 30 insertions(+)
>>
>> diff --git a/introduction.tex b/introduction.tex
>> index 33da3ec..c84a112 100644
>> --- a/introduction.tex
>> +++ b/introduction.tex
>> @@ -81,6 +81,36 @@ \section{Terminology}\label{Terminology}
>>
>> The key words ``MUST'', ``MUST NOT'', ``REQUIRED'', ``SHALL'', ``SHALL NOT'', ``SHOULD'', ``SHOULD NOT'', ``RECOMMENDED'', ``MAY'', and ``OPTIONAL'' in this document are to be interpreted as described in \hyperref[intro:rfc2119]{[RFC2119]}.
>>
>> +\subsection{Glossary}\label{intro:Glossary}
>> +
>> +The following are definitions of common terms used throughout the specification.
>> +
>> +\begin{description}
>> +\item[Guest]
>> + A virtual machine hosted by a hypervisor.
>> +\item[Host]
>> + The system hosting a virtual machine. It may consist of multiple
>> + components including a hypervisor, primary OS and it's user-space.
>
> Please avoid using guest/host terminology. Guest/host does not apply to
> all VIRTIO use cases. For example, the "device backend" definition above
> is specific to software implementation of VIRTIO devices on the host,
> but VIRTIO devices can be implemented in hardware too.
>
> Another example: it is possible to use VIRTIO devices on bare metal
> without virtualization in Linux (either hardware or software vDPA
> implementations).
>
> There are device types that are specifically designed for virtualization
> (e.g. memory ballooning) and there it is fine to use guest/host
> terminology. But the terminology should only be used when necessary and
> not as the base for defining general terms like "device" and "driver".
OK - I was hoping it would make things clearer as I was getting confused
with the device/driver terminology for the vhost-user-device.
>> +\item[Device Interface]
>> + The series of configuration, control and operation mechanisms
>> + visible to the guest that make a Virtio device.
>> +\item[Device Driver]
>> + The software (usually part of a kernel) running on the guest which
>> + accesses the device interface.
>> +\item[Device Backend]
>> + The software running on the host that services requests made of the
>> + device interface. The implementation details of the backend should
>> + be transparent to the guest.
>
> The VIRTIO spec typically uses just "driver" and "device", not "device
> driver" and "device backend". Any instances of the latter should be
> fixed up in the spec.
OK how about:
Device:
The series of configuration, control and operation mechanisms
visible to the driver that make up a Virtio device. The implementation
of the device should be transparent to the Driver.
Driver
The software (usually part of a kernel) which accesses the device
interface.
> Let's avoid using "backend" in VIRTIO because it already has a meaning
> in the context of vhost-user.
>
>> +\item[Notification]
>> + An asynchronous signal sent to either the device backend or the
>> + device driver to indicate a virtqueue has been updated. For guests
>> + this is typically a device interrupt.
>
> The configuration change notification is not specific to a virtqueue.
> This definition should be more general:
>
> s/a virtqueue has been updated/an event has occurred/
OK - can we say anything else about it. Are notifications essential or
there to avoid polling.
>
>> +\item[Doorbell Register]
>> + A guest visible register that when accessed will trigger a
>> + notification to the backend via some implementation defined
>> + mechanism.
>
> Rewriting this with the above points in mind:
>
> A register that triggers a notification to the device when accessed by
> the driver.
>
> Stefan
--
Alex Bennée
This publicly archived list offers a means to provide input to the
OASIS Virtual I/O Device (VIRTIO) TC.
In order to verify user consent to the Feedback License terms and
to minimize spam in the list archive, subscription is required
before posting.
Subscribe: virtio-comment-subscribe@lists.oasis-open.org
Unsubscribe: virtio-comment-unsubscribe@lists.oasis-open.org
List help: virtio-comment-help@lists.oasis-open.org
List archive: https://lists.oasis-open.org/archives/virtio-comment/
Feedback License: https://www.oasis-open.org/who/ipr/feedback_license.pdf
List Guidelines: https://www.oasis-open.org/policies-guidelines/mailing-lists
Committee: https://www.oasis-open.org/committees/virtio/
Join OASIS: https://www.oasis-open.org/join/
prev parent reply other threads:[~2020-07-21 11:04 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-07-20 14:54 [virtio-comment] [RFC PATCH] introduction.tex: introduce a glossary of terms Alex Bennée
2020-07-21 10:27 ` [virtio-comment] " Stefan Hajnoczi
2020-07-21 11:04 ` Alex Bennée [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=871rl5w2mx.fsf@linaro.org \
--to=alex.bennee@linaro.org \
--cc=ndragazis@arrikto.com \
--cc=stefanha@redhat.com \
--cc=virtio-comment@lists.oasis-open.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox