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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.