On 17/7/20 12:34 μ.μ., Stefan Hajnoczi wrote:
On Mon, May 18, 2020 at 11:37:14PM +0300, Nikos Dragazis wrote:
The configuration structure for the notification capability has certain
device/driver requirements, similar to those of the MSI-X vector
configuration. Add these requirements to the device spec.
Signed-off-by: Nikos Dragazis <ndraga...@arrikto.com>
---
virtio-vhost-user.tex | 42 ++++++++++++++++++++++++++++++++++++++++++
1 file changed, 42 insertions(+)
diff --git a/virtio-vhost-user.tex b/virtio-vhost-user.tex
index 13ecd41..7a8cd9c 100644
--- a/virtio-vhost-user.tex
+++ b/virtio-vhost-user.tex
@@ -275,6 +275,48 @@ \subsubsection{Notification structure
layout}\label{sec:Device Types / Vhost-use
\field{VIRTIO_MSI_NO_VECTOR} to \field{notification_msix_vector} to change the
MSI-X vector for that notification.
+\devicenormative{\paragraph}{Notification capability}{Device Types / Vhost-user Device Backend / Additional Device Resources over PCI / Notification capability}
+
+If MSI-X is available, device MUST support mapping any master queue
+event to any valid vector 0 to MSI-X \field{Table Size}. Here
This section combines two things:
1. vhost-user concepts -> VIRTIO notifications
2. VIRTIO notifications -> VIRTIO PCI transport MSI-X implementation of
notifications
I think this should be split:
1. The virtio-vhost-user device spec should explain that vhost-user queue
events are mapped to VIRTIO notifications
2. The PCI transport spec should explain how notifications are mapped to
MSI-X
This way other VIRTIO device types will be able to use notifications too
without everyone explaining MSI-X specifics. Also it won't tie
virtio-vhost-user to VIRTIO PCI.
If I understand correctly, you are suggesting that we should standardize
the notification resource, similarly to the shared memory resource, so
that any device can use it. Is that so?
+\field{Table Size} is the \field{N-1} encoded Table Size stored in the
+Message Control register of the MSI-X capability structure according to
+\hyperref[intro:PCI]{[PCI]}, where \field{N} is the actual MSI-X Table
+Size.
+
+Device MUST support unmapping any master queue event.
+
+The device MUST return vector mapped to a given master queue event,
+(\field{NO_VECTOR} if unmapped) on read of
+\field{notification_msix_vector}. The device MUST have all master queue
+events unmapped upon reset.
"The device MUST unmap all master queue events upon reset" is clearer in
indicating that the device must take this action.
ACK
---------------------------------------------------------------------
To unsubscribe, e-mail: virtio-dev-unsubscr...@lists.oasis-open.org
For additional commands, e-mail: virtio-dev-h...@lists.oasis-open.org