virtio-dev.lists.oasis-open.org archive mirror
 help / color / mirror / Atom feed
* [virtio-dev] [PATCH v9 0/8] Rename queue index to queue number
@ 2023-03-28 20:17 Parav Pandit
  2023-03-28 20:17 ` [virtio-dev] [PATCH v9 1/8] content: Add vq number text Parav Pandit
                   ` (7 more replies)
  0 siblings, 8 replies; 19+ messages in thread
From: Parav Pandit @ 2023-03-28 20:17 UTC (permalink / raw)
  To: mst, virtio-dev, pasic, cohuck
  Cc: sgarzare, virtio-comment, shahafs, Parav Pandit

1. Currently, virtqueue is identified between driver and device
interchangeably using either number or index terminology.

2. Between PCI and MMIO transport the queue size (depth) is
defined as queue_size and QueueNum respectively.

To avoid confusion and to have consistency, unify them to use Number.

Solution:
a. Use virtqueue number description, and rename MMIO register as QueueSize.
b. Replace virtqueue index with virtqueue number
c. RSS area of virtio net has inherited some logic, describe it
using abstract rss_rq_id.

Patch summary:
patch-1 introduce vq number as generic term
patch-2 renames index to number for pci transport
patch-3 renames mmio register from Num to Size
patch-4 renames index to number for mmio transport
patch-5 renames num field to size for ccw transport
patch-6 renames index field to queue_select for ccw transport
patch-7 for virtio-net removes duplicate example from requirements
patch-8 for virtio-net updates rss description to use vq number

This series only improves the documentation, it does not change any
transport or device functionality.

Please review.
This series fixes the issue [1].

[1] https://github.com/oasis-tcs/virtio-spec/issues/163

---
changelog:
v8->v9:
- addressed comments from David
- few corrections with article
- renaming 'virtqueue number' to 'vq number'
- improving text and wording for rss_rq_id, avail notification
- commit log of specific change in individual patches
v7->v8:
- remove note about first virtqueue number
- skipped Max's comment to put word 'structure' in same line as its
  crosses 65 chars limit per line
- reworded queue_notification data set line, as '=' and vq number
  wording was odd
v6->v7:
- remove text around first vq as it is already covered in the basic
  virtqueues facility section
v5->v6:
- moved the vq number description from middle of vq operation
  to beginning of vq introduction
v4->v5:
- fixed accidental removal of "unclassifed packets".
- simplfied text around indirection_table mask
- removed rss_rq_id references as indirection table and
  unclassified_queue data type is self explanatory
v3->v4:
- moved note to comment for ccw
- renamed rq_handle to rss_rq_id
- moved rss_rq_id next to rss_config structure
- define rss_config structure using rss_rq_id
v2->v3:
- addressed comments from Michael
- added previous definitions for ccw fields
- moved rq_handle definition before using it
- added first patch to describe vq number
- updated pci for available buffer notification section
v1->v2:
- added patches for virtio net for rss area
- added patches for covering ccw transport
- added missing entries to refer in mmio transport


Parav Pandit (8):
  content: Add vq number text
  transport-pci: Refer to the vq by its number
  transport-mmio: Rename QueueNum register
  transport-mmio: Refer to the vq by its number
  transport-ccw: Rename queue depth/size to other transports
  transport-ccw: Refer to the vq by its number
  virtio-net: Avoid duplicate receive queue example
  virtio-net: Describe RSS using rss rq id

 content.tex                      |  4 ++
 device-types/net/description.tex | 29 ++++++++++----
 transport-ccw.tex                | 27 +++++++------
 transport-mmio.tex               | 67 +++++++++++++++++++-------------
 transport-pci.tex                | 13 ++++---
 5 files changed, 86 insertions(+), 54 deletions(-)

-- 
2.26.2


---------------------------------------------------------------------
To unsubscribe, e-mail: virtio-dev-unsubscribe@lists.oasis-open.org
For additional commands, e-mail: virtio-dev-help@lists.oasis-open.org


^ permalink raw reply	[flat|nested] 19+ messages in thread

* [virtio-dev] [PATCH v9 1/8] content: Add vq number text
  2023-03-28 20:17 [virtio-dev] [PATCH v9 0/8] Rename queue index to queue number Parav Pandit
@ 2023-03-28 20:17 ` Parav Pandit
  2023-03-29  9:01   ` [virtio-dev] " Cornelia Huck
  2023-03-28 20:17 ` [virtio-dev] [PATCH v9 2/8] transport-pci: Refer to the vq by its number Parav Pandit
                   ` (6 subsequent siblings)
  7 siblings, 1 reply; 19+ messages in thread
From: Parav Pandit @ 2023-03-28 20:17 UTC (permalink / raw)
  To: mst, virtio-dev, pasic, cohuck
  Cc: sgarzare, virtio-comment, shahafs, Parav Pandit

Introduce vq number and its range so that subsequent patches can refer
to it.

Fixes: https://github.com/oasis-tcs/virtio-spec/issues/163
Signed-off-by: Parav Pandit <parav@nvidia.com>
---
changelog:
v8->v9:
- added inclusive when describing the vq number range
- skipped comment to put virtqueue number wording first because we
  prefer to use shorter vq number as much as possible
v5->v6:
- moved description close to introduction, it was in middle of
  queue data transfer description
v2->v3:
- new patch
---
 content.tex | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/content.tex b/content.tex
index cff548a..3766bf9 100644
--- a/content.tex
+++ b/content.tex
@@ -298,6 +298,10 @@ \section{Virtqueues}\label{sec:Basic Facilities of a Virtio Device / Virtqueues}
 virtqueues\footnote{For example, the simplest network device has one virtqueue for
 transmit and one for receive.}.
 
+Each virtqueue is identified by a vq number or also referred
+to as a virtqueue number; vq number range is from 0 to 65535
+inclusive.
+
 Driver makes requests available to device by adding
 an available buffer to the queue, i.e., adding a buffer
 describing the request to a virtqueue, and optionally triggering
-- 
2.26.2


---------------------------------------------------------------------
To unsubscribe, e-mail: virtio-dev-unsubscribe@lists.oasis-open.org
For additional commands, e-mail: virtio-dev-help@lists.oasis-open.org


^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [virtio-dev] [PATCH v9 2/8] transport-pci: Refer to the vq by its number
  2023-03-28 20:17 [virtio-dev] [PATCH v9 0/8] Rename queue index to queue number Parav Pandit
  2023-03-28 20:17 ` [virtio-dev] [PATCH v9 1/8] content: Add vq number text Parav Pandit
@ 2023-03-28 20:17 ` Parav Pandit
  2023-03-29  9:06   ` [virtio-dev] " Cornelia Huck
  2023-03-28 20:17 ` [virtio-dev] [PATCH v9 3/8] transport-mmio: Rename QueueNum register Parav Pandit
                   ` (5 subsequent siblings)
  7 siblings, 1 reply; 19+ messages in thread
From: Parav Pandit @ 2023-03-28 20:17 UTC (permalink / raw)
  To: mst, virtio-dev, pasic, cohuck
  Cc: sgarzare, virtio-comment, shahafs, Parav Pandit, Max Gurtovoy,
	Jiri Pirko

Currently specification uses virtqueue index and
number interchangeably to refer to the virtqueue.

Instead refer to it by its number.

This patch is on top of [1].

[1] https://lists.oasis-open.org/archives/virtio-dev/202302/msg00527.html

Fixes: https://github.com/oasis-tcs/virtio-spec/issues/163
Reviewed-by: Max Gurtovoy <mgurtovoy@nvidia.com>
Reviewed-by: Jiri Pirko <jiri@nvidia.com>
Signed-off-by: Parav Pandit <parav@nvidia.com>
---
changelog:
v8->v9:
- reword the sentence to avoid future tense, like rest of the other
  fields description
- reword the sentence to avoid multiple verbs use and put -> uses
- use shorter name 'vq number' instead of 'virtqueue number'
v7->v8:
- remove note about first virtqueue number
- skipped Max's comment to put word 'structure' in same line as its
  crosses 65 chars limit per line
- reworded queue_notification data set line, as '=' and vq number
  wording was odd
v2->v3:
- addressed comments from Michael
- changed vqn to virtqueue number in the Note
- refer to vqn field instead of virtqueue number
---
 transport-pci.tex | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

diff --git a/transport-pci.tex b/transport-pci.tex
index b07a822..0f3a48b 100644
--- a/transport-pci.tex
+++ b/transport-pci.tex
@@ -390,13 +390,14 @@ \subsubsection{Common configuration structure layout}\label{sec:Virtio Transport
 
 \item[\field{queue_notify_data}]
         This field exists only if VIRTIO_F_NOTIF_CONFIG_DATA has been negotiated.
-        The driver will use this value to put it in the 'virtqueue number' field
+        The driver uses this value in the field \field{vqn}
         in the available buffer notification structure.
         See section \ref{sec:Virtio Transport Options / Virtio Over PCI Bus / PCI-specific Initialization And Device Operation / Available Buffer Notifications}.
         \begin{note}
         This field provides the device with flexibility to determine how virtqueues
         will be referred to in available buffer notifications.
-        In a trivial case the device can set \field{queue_notify_data}=vqn. Some devices
+        In a trivial case the device can set
+        \field{queue_notify_data} to the vq number. Some devices
         may benefit from providing another value, for example an internal virtqueue
         identifier, or an internal offset related to the virtqueue number.
         \end{note}
@@ -1005,7 +1006,7 @@ \subsubsection{Device Initialization}\label{sec:Virtio Transport Options / Virti
 The driver typically does this as follows, for each virtqueue a device has:
 
 \begin{enumerate}
-\item Write the virtqueue index (first queue is 0) to \field{queue_select}.
+\item Write the vq number to \field{queue_select}.
 
 \item Read the virtqueue size from \field{queue_size}. This controls how big the virtqueue is
   (see \ref{sec:Basic Facilities of a Virtio Device / Virtqueues}~\nameref{sec:Basic Facilities of a Virtio Device / Virtqueues}). If this field is 0, the virtqueue does not exist.
@@ -1035,8 +1036,8 @@ \subsubsection{Available Buffer Notifications}\label{sec:Virtio Transport Option
 
 When VIRTIO_F_NOTIFICATION_DATA has not been negotiated,
 the driver sends an available buffer notification to the device by writing
-the 16-bit virtqueue index
-of this virtqueue to the Queue Notify address.
+the 16-bit vq number of this virtqueue to the Queue Notify
+address.
 
 When VIRTIO_F_NOTIFICATION_DATA has been negotiated,
 the driver sends an available buffer notification to the device by writing
@@ -1053,7 +1054,7 @@ \subsubsection{Available Buffer Notifications}\label{sec:Virtio Transport Option
 If VIRTIO_F_NOTIF_CONFIG_DATA has been negotiated:
 \begin{itemize}
 \item If VIRTIO_F_NOTIFICATION_DATA has not been negotiated, the driver MUST use the
-\field{queue_notify_data} value instead of the virtqueue index.
+\field{queue_notify_data} value instead of the vq number.
 \item If VIRTIO_F_NOTIFICATION_DATA has been negotiated, the driver MUST set the
 \field{vqn} field to the \field{queue_notify_data} value.
 \end{itemize}
-- 
2.26.2


---------------------------------------------------------------------
To unsubscribe, e-mail: virtio-dev-unsubscribe@lists.oasis-open.org
For additional commands, e-mail: virtio-dev-help@lists.oasis-open.org


^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [virtio-dev] [PATCH v9 3/8] transport-mmio: Rename QueueNum register
  2023-03-28 20:17 [virtio-dev] [PATCH v9 0/8] Rename queue index to queue number Parav Pandit
  2023-03-28 20:17 ` [virtio-dev] [PATCH v9 1/8] content: Add vq number text Parav Pandit
  2023-03-28 20:17 ` [virtio-dev] [PATCH v9 2/8] transport-pci: Refer to the vq by its number Parav Pandit
@ 2023-03-28 20:17 ` Parav Pandit
  2023-03-29  9:15   ` [virtio-dev] " Cornelia Huck
  2023-03-28 20:17 ` [virtio-dev] [PATCH v9 4/8] transport-mmio: Refer to the vq by its number Parav Pandit
                   ` (4 subsequent siblings)
  7 siblings, 1 reply; 19+ messages in thread
From: Parav Pandit @ 2023-03-28 20:17 UTC (permalink / raw)
  To: mst, virtio-dev, pasic, cohuck
  Cc: sgarzare, virtio-comment, shahafs, Parav Pandit, Jiri Pirko

Currently specification uses virtqueue index and number
interchangeably to refer to the virtqueue.

It is better to always refer to it the virtqueue in consistent manner.

Two registers QueueNumMax and QueueNum actually reflects the queue size
or queue depth indicating max and actual number of entries in the queue.

These are further named differently between pci and mmio transport.
PCI transport indicates queue size as queue_size.

To bring consistency between pci and mmio transport, and to avoid
confusion between number and index, rename the QueueNumMax and QueueNum
registers to QueueSizeMax and QueueSize respectively.

Fixes: https://github.com/oasis-tcs/virtio-spec/issues/163
Reviewed-by: Jiri Pirko <jiri@nvidia.com>
Signed-off-by: Parav Pandit <parav@nvidia.com>

---
changelog:
v8->v9:
- added field tag to indicate field name instead of English word
v0->v1:
- replaced references of QueueNumMax to QueueSizeMax
- replaced references of QueueNum to QueueSize
- added note for renamed fields old name suggested by @Michael Tsirkin
---
 transport-mmio.tex | 44 ++++++++++++++++++++++++++++++--------------
 1 file changed, 30 insertions(+), 14 deletions(-)

diff --git a/transport-mmio.tex b/transport-mmio.tex
index f884a2c..9b450b8 100644
--- a/transport-mmio.tex
+++ b/transport-mmio.tex
@@ -110,24 +110,32 @@ \subsection{MMIO Device Register Layout}\label{sec:Virtio Transport Options / Vi
   \hline
   \mmioreg{QueueSel}{Virtual queue index}{0x030}{W}{%
     Writing to this register selects the virtual queue that the
-    following operations on \field{QueueNumMax}, \field{QueueNum}, \field{QueueReady},
+    following operations on \field{QueueSizeMax},
+    \field{QueueSize}, \field{QueueReady},
     \field{QueueDescLow}, \field{QueueDescHigh}, \field{QueueDriverlLow}, \field{QueueDriverHigh},
     \field{QueueDeviceLow}, \field{QueueDeviceHigh} and \field{QueueReset} apply to. The index
     number of the first queue is zero (0x0).
   }
   \hline
-  \mmioreg{QueueNumMax}{Maximum virtual queue size}{0x034}{R}{%
+  \mmioreg{QueueSizeMax}{Maximum virtual queue size}{0x034}{R}{%
     Reading from the register returns the maximum size (number of
     elements) of the queue the device is ready to process or
     zero (0x0) if the queue is not available. This applies to the
     queue selected by writing to \field{QueueSel}.
+    \begin{note}
+    \field{QueueSizeMax} was previously known as
+    \field{QueueNumMax}.
+    \end{note}
   }
   \hline
-  \mmioreg{QueueNum}{Virtual queue size}{0x038}{W}{%
+  \mmioreg{QueueSize}{Virtual queue size}{0x038}{W}{%
     Queue size is the number of elements in the queue.
     Writing to this register notifies the device what size of the
     queue the driver will use. This applies to the queue selected by
     writing to \field{QueueSel}.
+    \begin{note}
+    \field{QueueSize} was previously known as \field{QueueNum}.
+    \end{note}
   }
   \hline
   \mmioreg{QueueReady}{Virtual queue ready bit}{0x044}{RW}{%
@@ -308,11 +316,11 @@ \subsection{MMIO Device Register Layout}\label{sec:Virtio Transport Options / Vi
 
 Before writing to the \field{DriverFeatures} register, the driver MUST write a value to the \field{DriverFeaturesSel} register.
 
-The driver MUST write a value to \field{QueueNum} which is less than
-or equal to the value presented by the device in \field{QueueNumMax}.
+The driver MUST write a value to \field{QueueSize} which is less than
+or equal to the value presented by the device in \field{QueueSizeMax}.
 
 When \field{QueueReady} is not zero, the driver MUST NOT access
-\field{QueueNum}, \field{QueueDescLow}, \field{QueueDescHigh},
+\field{QueueSize}, \field{QueueDescLow}, \field{QueueDescHigh},
 \field{QueueDriverLow}, \field{QueueDriverHigh}, \field{QueueDeviceLow}, \field{QueueDeviceHigh}.
 
 To stop using the queue the driver MUST write zero (0x0) to this
@@ -363,14 +371,14 @@ \subsubsection{Virtqueue Configuration}\label{sec:Virtio Transport Options / Vir
    and expect a returned value of zero (0x0).
 
 \item Read maximum queue size (number of elements) from
-   \field{QueueNumMax}. If the returned value is zero (0x0) the
+   \field{QueueSizeMax}. If the returned value is zero (0x0) the
    queue is not available.
 
 \item Allocate and zero the queue memory, making sure the memory
    is physically contiguous.
 
 \item Notify the device about the queue size by writing the size to
-   \field{QueueNum}.
+   \field{QueueSize}.
 
 \item Write physical addresses of the queue's Descriptor Area,
    Driver Area and Device Area to (respectively) the
@@ -465,25 +473,33 @@ \subsection{Legacy interface}\label{sec:Virtio Transport Options / Virtio Over M
   \hline
   \mmioreg{QueueSel}{Virtual queue index}{0x030}{W}{%
     Writing to this register selects the virtual queue that the
-    following operations on the \field{QueueNumMax}, \field{QueueNum}, \field{QueueAlign}
+    following operations on the \field{QueueSizeMax},
+    \field{QueueSize}, \field{QueueAlign}
     and \field{QueuePFN} registers apply to. The index
     number of the first queue is zero (0x0).
 .
   }
   \hline
-  \mmioreg{QueueNumMax}{Maximum virtual queue size}{0x034}{R}{%
+  \mmioreg{QueueSizeMax}{Maximum virtual queue size}{0x034}{R}{%
     Reading from the register returns the maximum size of the queue
     the device is ready to process or zero (0x0) if the queue is not
     available. This applies to the queue selected by writing to
     \field{QueueSel} and is allowed only when \field{QueuePFN} is set to zero
     (0x0), so when the queue is not actively used.
+    \begin{note}
+    \field{QueueSizeMax} was previously known as
+    \field{QueueNumMax}.
+    \end{note}
   }
   \hline
-  \mmioreg{QueueNum}{Virtual queue size}{0x038}{W}{%
+  \mmioreg{QueueSize}{Virtual queue size}{0x038}{W}{%
     Queue size is the number of elements in the queue.
     Writing to this register notifies the device what size of the
     queue the driver will use. This applies to the queue selected by
     writing to \field{QueueSel}.
+    \begin{note}
+    \field{QueueSize} was previously known as \field{QueueNum}.
+    \end{note}
   }
   \hline
   \mmioreg{QueueAlign}{Used Ring alignment in the virtual queue}{0x03c}{W}{%
@@ -543,16 +559,16 @@ \subsection{Legacy interface}\label{sec:Virtio Transport Options / Virtio Over M
    expecting a returned value of zero (0x0).
 
 \item Read maximum queue size (number of elements) from
-   \field{QueueNumMax}. If the returned value is zero (0x0) the
+   \field{QueueSizeMax}. If the returned value is zero (0x0) the
    queue is not available.
 
 \item Allocate and zero the queue pages in contiguous virtual
    memory, aligning the Used Ring to an optimal boundary (usually
    page size). The driver should choose a queue size smaller than or
-   equal to \field{QueueNumMax}.
+   equal to \field{QueueSizeMax}.
 
 \item Notify the device about the queue size by writing the size to
-   \field{QueueNum}.
+   \field{QueueSize}.
 
 \item Notify the device about the used alignment by writing its value
    in bytes to \field{QueueAlign}.
-- 
2.26.2


---------------------------------------------------------------------
To unsubscribe, e-mail: virtio-dev-unsubscribe@lists.oasis-open.org
For additional commands, e-mail: virtio-dev-help@lists.oasis-open.org


^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [virtio-dev] [PATCH v9 4/8] transport-mmio: Refer to the vq by its number
  2023-03-28 20:17 [virtio-dev] [PATCH v9 0/8] Rename queue index to queue number Parav Pandit
                   ` (2 preceding siblings ...)
  2023-03-28 20:17 ` [virtio-dev] [PATCH v9 3/8] transport-mmio: Rename QueueNum register Parav Pandit
@ 2023-03-28 20:17 ` Parav Pandit
  2023-03-29  9:18   ` [virtio-dev] " Cornelia Huck
  2023-03-28 20:17 ` [virtio-dev] [PATCH v9 5/8] transport-ccw: Rename queue depth/size to other transports Parav Pandit
                   ` (3 subsequent siblings)
  7 siblings, 1 reply; 19+ messages in thread
From: Parav Pandit @ 2023-03-28 20:17 UTC (permalink / raw)
  To: mst, virtio-dev, pasic, cohuck
  Cc: sgarzare, virtio-comment, shahafs, Parav Pandit, Jiri Pirko

Currently specification uses virtqueue index and
number interchangeably to refer to the virtqueue.

Instead refer to it by its number.

Fixes: https://github.com/oasis-tcs/virtio-spec/issues/163
Reviewed-by: Jiri Pirko <jiri@nvidia.com>
Signed-off-by: Parav Pandit <parav@nvidia.com>

---
changelog:
v8->v9:
- added 'by' at two places
- replaced 'queue number' with 'vq number'

v6->v7:
- remove text around first vq as it is already covered in the basic
  virtqueues facility section
---
 transport-mmio.tex | 23 +++++++++--------------
 1 file changed, 9 insertions(+), 14 deletions(-)

diff --git a/transport-mmio.tex b/transport-mmio.tex
index 9b450b8..acc72f1 100644
--- a/transport-mmio.tex
+++ b/transport-mmio.tex
@@ -108,13 +108,12 @@ \subsection{MMIO Device Register Layout}\label{sec:Virtio Transport Options / Vi
     bits accessible by writing to \field{DriverFeatures}.
   }
   \hline
-  \mmioreg{QueueSel}{Virtual queue index}{0x030}{W}{%
+  \mmioreg{QueueSel}{Virtual queue number}{0x030}{W}{%
     Writing to this register selects the virtual queue that the
     following operations on \field{QueueSizeMax},
     \field{QueueSize}, \field{QueueReady},
     \field{QueueDescLow}, \field{QueueDescHigh}, \field{QueueDriverlLow}, \field{QueueDriverHigh},
-    \field{QueueDeviceLow}, \field{QueueDeviceHigh} and \field{QueueReset} apply to. The index
-    number of the first queue is zero (0x0).
+    \field{QueueDeviceLow}, \field{QueueDeviceHigh} and \field{QueueReset} apply to.
   }
   \hline
   \mmioreg{QueueSizeMax}{Maximum virtual queue size}{0x034}{R}{%
@@ -150,7 +149,7 @@ \subsection{MMIO Device Register Layout}\label{sec:Virtio Transport Options / Vi
     there are new buffers to process in a queue.
 
     When VIRTIO_F_NOTIFICATION_DATA has not been negotiated,
-    the value written is the queue index.
+    the value written is the vq number.
 
     When VIRTIO_F_NOTIFICATION_DATA has been negotiated,
     the \field{Notification data} value has the following format:
@@ -364,8 +363,7 @@ \subsubsection{Virtqueue Configuration}\label{sec:Virtio Transport Options / Vir
 The driver will typically initialize the virtual queue in the following way:
 
 \begin{enumerate}
-\item Select the queue writing its index (first queue is 0) to
-   \field{QueueSel}.
+\item Select the queue by writing its number to \field{QueueSel}.
 
 \item Check if the queue is not already in use: read \field{QueueReady},
    and expect a returned value of zero (0x0).
@@ -393,8 +391,8 @@ \subsubsection{Available Buffer Notifications}\label{sec:Virtio Transport Option
 
 When VIRTIO_F_NOTIFICATION_DATA has not been negotiated,
 the driver sends an available buffer notification to the device by writing
-the 16-bit virtqueue index
-of the queue to be notified to \field{QueueNotify}.
+the 16-bit vq number of the queue to be notified to
+\field{QueueNotify}.
 
 When VIRTIO_F_NOTIFICATION_DATA has been negotiated,
 the driver sends an available buffer notification to the device by writing
@@ -471,13 +469,11 @@ \subsection{Legacy interface}\label{sec:Virtio Transport Options / Virtio Over M
     (see QueuePFN).
   }
   \hline
-  \mmioreg{QueueSel}{Virtual queue index}{0x030}{W}{%
+  \mmioreg{QueueSel}{Virtual queue number}{0x030}{W}{%
     Writing to this register selects the virtual queue that the
     following operations on the \field{QueueSizeMax},
     \field{QueueSize}, \field{QueueAlign}
-    and \field{QueuePFN} registers apply to. The index
-    number of the first queue is zero (0x0).
-.
+    and \field{QueuePFN} registers apply to.
   }
   \hline
   \mmioreg{QueueSizeMax}{Maximum virtual queue size}{0x034}{R}{%
@@ -552,8 +548,7 @@ \subsection{Legacy interface}\label{sec:Virtio Transport Options / Virtio Over M
 
 The virtual queue is configured as follows:
 \begin{enumerate}
-\item Select the queue writing its index (first queue is 0) to
-   \field{QueueSel}.
+\item Select the queue by writing its number to \field{QueueSel}.
 
 \item Check if the queue is not already in use: read \field{QueuePFN},
    expecting a returned value of zero (0x0).
-- 
2.26.2


---------------------------------------------------------------------
To unsubscribe, e-mail: virtio-dev-unsubscribe@lists.oasis-open.org
For additional commands, e-mail: virtio-dev-help@lists.oasis-open.org


^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [virtio-dev] [PATCH v9 5/8] transport-ccw: Rename queue depth/size to other transports
  2023-03-28 20:17 [virtio-dev] [PATCH v9 0/8] Rename queue index to queue number Parav Pandit
                   ` (3 preceding siblings ...)
  2023-03-28 20:17 ` [virtio-dev] [PATCH v9 4/8] transport-mmio: Refer to the vq by its number Parav Pandit
@ 2023-03-28 20:17 ` Parav Pandit
  2023-03-29  9:23   ` [virtio-dev] " Cornelia Huck
  2023-03-28 20:17 ` [virtio-dev] [PATCH v9 6/8] transport-ccw: Refer to the vq by its number Parav Pandit
                   ` (2 subsequent siblings)
  7 siblings, 1 reply; 19+ messages in thread
From: Parav Pandit @ 2023-03-28 20:17 UTC (permalink / raw)
  To: mst, virtio-dev, pasic, cohuck
  Cc: sgarzare, virtio-comment, shahafs, Parav Pandit

max_num field reflects the maximum queue size/depth. Hence align name of
this field with similar field in PCI and MMIO transport to
max_queue_size.
Similarly rename 'num' to 'size'.

Fixes: https://github.com/oasis-tcs/virtio-spec/issues/163
Signed-off-by: Parav Pandit <parav@nvidia.com>

---
changelog:
v8->v9:
- replaced 'named' as 'known'
v3->v4:
- moved note to comment
---
 transport-ccw.tex | 14 ++++++++------
 1 file changed, 8 insertions(+), 6 deletions(-)

diff --git a/transport-ccw.tex b/transport-ccw.tex
index c492cb9..488c46c 100644
--- a/transport-ccw.tex
+++ b/transport-ccw.tex
@@ -237,12 +237,12 @@ \subsubsection{Configuring a Virtqueue}\label{sec:Virtio Transport Options / Vir
 \begin{lstlisting}
 struct vq_config_block {
         be16 index;
-        be16 max_num;
+        be16 max_queue_size; /* Previously known as max_num */
 };
 \end{lstlisting}
 
 The requested number of buffers for queue \field{index} is returned in
-\field{max_num}.
+\field{max_queue_size}.
 
 Afterwards, CCW_CMD_SET_VQ is issued by the driver to inform the
 device about the location used for its queue. The transmitted
@@ -253,7 +253,7 @@ \subsubsection{Configuring a Virtqueue}\label{sec:Virtio Transport Options / Vir
         be64 desc;
         be32 res0;
         be16 index;
-        be16 num;
+        be16 size; /* Previously known as num */
         be64 driver;
         be64 device;
 };
@@ -262,7 +262,8 @@ \subsubsection{Configuring a Virtqueue}\label{sec:Virtio Transport Options / Vir
 \field{desc}, \field{driver} and \field{device} contain the guest
 addresses for the descriptor area,
 available area and used area for queue \field{index}, respectively. The actual
-virtqueue size (number of allocated buffers) is transmitted in \field{num}.
+virtqueue size (number of allocated buffers) is transmitted in
+\field{size}.
 
 \devicenormative{\paragraph}{Configuring a Virtqueue}{Virtio Transport Options / Virtio over channel I/O / Device Initialization / Configuring a Virtqueue}
 
@@ -278,11 +279,12 @@ \subsubsection{Configuring a Virtqueue}\label{sec:Virtio Transport Options / Vir
         be64 queue;
         be32 align;
         be16 index;
-        be16 num;
+        be16 size; /* Previously known as num */
 };
 \end{lstlisting}
 
-\field{queue} contains the guest address for queue \field{index}, \field{num} the number of buffers
+\field{queue} contains the guest address for queue \field{index},
+\field{size} the number of buffers
 and \field{align} the alignment. The queue layout follows \ref{sec:Basic Facilities of a Virtio Device / Virtqueues / Legacy Interfaces: A Note on Virtqueue Layout}~\nameref{sec:Basic Facilities of a Virtio Device / Virtqueues / Legacy Interfaces: A Note on Virtqueue Layout}.
 
 \subsubsection{Communicating Status Information}\label{sec:Virtio Transport Options / Virtio over channel I/O / Device Initialization / Communicating Status Information}
-- 
2.26.2


---------------------------------------------------------------------
To unsubscribe, e-mail: virtio-dev-unsubscribe@lists.oasis-open.org
For additional commands, e-mail: virtio-dev-help@lists.oasis-open.org


^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [virtio-dev] [PATCH v9 6/8] transport-ccw: Refer to the vq by its number
  2023-03-28 20:17 [virtio-dev] [PATCH v9 0/8] Rename queue index to queue number Parav Pandit
                   ` (4 preceding siblings ...)
  2023-03-28 20:17 ` [virtio-dev] [PATCH v9 5/8] transport-ccw: Rename queue depth/size to other transports Parav Pandit
@ 2023-03-28 20:17 ` Parav Pandit
  2023-03-29  9:30   ` [virtio-dev] " Cornelia Huck
  2023-03-28 20:17 ` [virtio-dev] [PATCH v9 7/8] virtio-net: Avoid duplicate receive queue example Parav Pandit
  2023-03-28 20:17 ` [virtio-dev] [PATCH v9 8/8] virtio-net: Describe RSS using rss rq id Parav Pandit
  7 siblings, 1 reply; 19+ messages in thread
From: Parav Pandit @ 2023-03-28 20:17 UTC (permalink / raw)
  To: mst, virtio-dev, pasic, cohuck
  Cc: sgarzare, virtio-comment, shahafs, Parav Pandit

Currently specification uses virtqueue index and
number interchangeably to refer to the virtqueue.

Instead refer to it by its number.

Fixes: https://github.com/oasis-tcs/virtio-spec/issues/163
Signed-off-by: Parav Pandit <parav@nvidia.com>

---
changelog:
v8->v9:
- replaced 'named' with 'known'
- replaced 'queue number' with 'vq number'
v3->v4:
- moved note to comment
v2->v3:
- added comment note for queue_select similar to max_queue_size
v0->v1:
- new patch
---
 transport-ccw.tex | 15 ++++++++-------
 1 file changed, 8 insertions(+), 7 deletions(-)

diff --git a/transport-ccw.tex b/transport-ccw.tex
index 488c46c..0240db8 100644
--- a/transport-ccw.tex
+++ b/transport-ccw.tex
@@ -236,12 +236,12 @@ \subsubsection{Configuring a Virtqueue}\label{sec:Virtio Transport Options / Vir
 
 \begin{lstlisting}
 struct vq_config_block {
-        be16 index;
+        be16 queue_select; /* Previously known as index */
         be16 max_queue_size; /* Previously known as max_num */
 };
 \end{lstlisting}
 
-The requested number of buffers for queue \field{index} is returned in
+The requested number of buffers for queue \field{queue_select} is returned in
 \field{max_queue_size}.
 
 Afterwards, CCW_CMD_SET_VQ is issued by the driver to inform the
@@ -252,7 +252,7 @@ \subsubsection{Configuring a Virtqueue}\label{sec:Virtio Transport Options / Vir
 struct vq_info_block {
         be64 desc;
         be32 res0;
-        be16 index;
+        be16 queue_select; /* Previously known as index */
         be16 size; /* Previously known as num */
         be64 driver;
         be64 device;
@@ -261,7 +261,7 @@ \subsubsection{Configuring a Virtqueue}\label{sec:Virtio Transport Options / Vir
 
 \field{desc}, \field{driver} and \field{device} contain the guest
 addresses for the descriptor area,
-available area and used area for queue \field{index}, respectively. The actual
+available area and used area for vq number \field{queue_select}, respectively. The actual
 virtqueue size (number of allocated buffers) is transmitted in
 \field{size}.
 
@@ -278,12 +278,13 @@ \subsubsection{Configuring a Virtqueue}\label{sec:Virtio Transport Options / Vir
 struct vq_info_block_legacy {
         be64 queue;
         be32 align;
-        be16 index;
+        be16 queue_select; /* Previously known as index */
         be16 size; /* Previously known as num */
 };
 \end{lstlisting}
 
-\field{queue} contains the guest address for queue \field{index},
+\field{queue} contains the guest address for vq number
+\field{queue_select},
 \field{size} the number of buffers
 and \field{align} the alignment. The queue layout follows \ref{sec:Basic Facilities of a Virtio Device / Virtqueues / Legacy Interfaces: A Note on Virtqueue Layout}~\nameref{sec:Basic Facilities of a Virtio Device / Virtqueues / Legacy Interfaces: A Note on Virtqueue Layout}.
 
@@ -571,7 +572,7 @@ \subsubsection{Guest->Host Notification}\label{sec:Virtio Transport Options / Vi
 For example:
 \begin{lstlisting}
 info->cookie = do_notify(schid,
-                         virtqueue_get_queue_index(vq),
+                         virtqueue_get_queue_number(vq),
                          info->cookie);
 \end{lstlisting}
 \end{note}
-- 
2.26.2


---------------------------------------------------------------------
To unsubscribe, e-mail: virtio-dev-unsubscribe@lists.oasis-open.org
For additional commands, e-mail: virtio-dev-help@lists.oasis-open.org


^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [virtio-dev] [PATCH v9 7/8] virtio-net: Avoid duplicate receive queue example
  2023-03-28 20:17 [virtio-dev] [PATCH v9 0/8] Rename queue index to queue number Parav Pandit
                   ` (5 preceding siblings ...)
  2023-03-28 20:17 ` [virtio-dev] [PATCH v9 6/8] transport-ccw: Refer to the vq by its number Parav Pandit
@ 2023-03-28 20:17 ` Parav Pandit
  2023-03-28 20:17 ` [virtio-dev] [PATCH v9 8/8] virtio-net: Describe RSS using rss rq id Parav Pandit
  7 siblings, 0 replies; 19+ messages in thread
From: Parav Pandit @ 2023-03-28 20:17 UTC (permalink / raw)
  To: mst, virtio-dev, pasic, cohuck
  Cc: sgarzare, virtio-comment, shahafs, Parav Pandit

Receive queue number/index example is duplicate which is already defined
in the Setting RSS parameters section.

Hence, avoid such duplicate example and prepare it for the subsequent
patch to describe using receive queue handle.

Fixes: https://github.com/oasis-tcs/virtio-spec/issues/163
Signed-off-by: Parav Pandit <parav@nvidia.com>
---
 device-types/net/description.tex | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/device-types/net/description.tex b/device-types/net/description.tex
index d7c8b1b..435c1fc 100644
--- a/device-types/net/description.tex
+++ b/device-types/net/description.tex
@@ -1467,8 +1467,8 @@ \subsubsection{Control Virtqueue}\label{sec:Device Types / Network Device / Devi
 The device MUST determine the destination queue for a network packet as follows:
 \begin{itemize}
 \item Calculate the hash of the packet as defined in \ref{sec:Device Types / Network Device / Device Operation / Processing of Incoming Packets / Hash calculation for incoming packets}.
-\item If the device did not calculate the hash for the specific packet, the device directs the packet to the receiveq specified by \field{unclassified_queue} of virtio_net_rss_config structure (value of 0 corresponds to receiveq1).
-\item Apply \field{indirection_table_mask} to the calculated hash and use the result as the index in the indirection table to get 0-based number of destination receiveq (value of 0 corresponds to receiveq1).
+\item If the device did not calculate the hash for the specific packet, the device directs the packet to the receiveq specified by \field{unclassified_queue} of virtio_net_rss_config structure.
+\item Apply \field{indirection_table_mask} to the calculated hash and use the result as the index in the indirection table to get 0-based number of destination receiveq.
 \item If the destination receive queue is being reset (See \ref{sec:Basic Facilities of a Virtio Device / Virtqueues / Virtqueue Reset}), the device MUST drop the packet.
 \end{itemize}
 
-- 
2.26.2


---------------------------------------------------------------------
To unsubscribe, e-mail: virtio-dev-unsubscribe@lists.oasis-open.org
For additional commands, e-mail: virtio-dev-help@lists.oasis-open.org


^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [virtio-dev] [PATCH v9 8/8] virtio-net: Describe RSS using rss rq id
  2023-03-28 20:17 [virtio-dev] [PATCH v9 0/8] Rename queue index to queue number Parav Pandit
                   ` (6 preceding siblings ...)
  2023-03-28 20:17 ` [virtio-dev] [PATCH v9 7/8] virtio-net: Avoid duplicate receive queue example Parav Pandit
@ 2023-03-28 20:17 ` Parav Pandit
  7 siblings, 0 replies; 19+ messages in thread
From: Parav Pandit @ 2023-03-28 20:17 UTC (permalink / raw)
  To: mst, virtio-dev, pasic, cohuck
  Cc: sgarzare, virtio-comment, shahafs, Parav Pandit

The content of indirection table and unclassified_queue which are
based on math calculation historically. To better describe this, to
avoid intermixing array index with virtqueue index and to use virtqueue
number

introduce a field rq_handle (receive queue handle) and refer them
to describe unclassified_queue and indirection_table fields.

As part of it, have the example that uses non zero virtqueue
number which helps to have better mapping between receiveX
object with virtqueue number and the actual value in the
indirection table.

Fixes: https://github.com/oasis-tcs/virtio-spec/issues/163
Signed-off-by: Parav Pandit <parav@nvidia.com>

---
changelog:
v8->v9:
- reword rss_rq_id and unclassified_packets description
- use article
- use 'vq number' instead of 'virtqueue number'
v4->v5:
- change subject to reflect rss_rq_id
- fixed accidental removal of "unclassifed packets".
- simplfied text around indirection_table mask to use the term
  destination receive virtqueue. This aligns with next line about queue
  reset.
- removed rss_rq_id references as indirection table and
  unclassified_queue data type is self explanatory
v3->v4:
- renamed rq_handle to rss_rq_id
- moved rss_rq_id definition close to its usage in rss_config struct
v2->v3:
- moved rq_handle definition before using it
- removed duplicate example as rq_handle is now described first
v0->v1:
- new patch suggested by Michael Tsirkin
---
 device-types/net/description.tex | 27 ++++++++++++++++++++-------
 1 file changed, 20 insertions(+), 7 deletions(-)

diff --git a/device-types/net/description.tex b/device-types/net/description.tex
index 435c1fc..c64335d 100644
--- a/device-types/net/description.tex
+++ b/device-types/net/description.tex
@@ -1423,11 +1423,16 @@ \subsubsection{Control Virtqueue}\label{sec:Device Types / Network Device / Devi
 
 Driver sends a VIRTIO_NET_CTRL_MQ_RSS_CONFIG command using the following format for \field{command-specific-data}:
 \begin{lstlisting}
+struct rss_rq_id {
+   le16 vqn_1_16: 15; /* Bits 1 to 16 of the vq number */
+   le16 reserved: 1; /* Set to zero */
+};
+
 struct virtio_net_rss_config {
     le32 hash_types;
     le16 indirection_table_mask;
-    le16 unclassified_queue;
-    le16 indirection_table[indirection_table_length];
+    struct rss_rq_id unclassified_queue;
+    struct rss_rq_id indirection_table[indirection_table_length];
     le16 max_tx_vq;
     u8 hash_key_length;
     u8 hash_key_data[hash_key_length];
@@ -1442,10 +1447,15 @@ \subsubsection{Control Virtqueue}\label{sec:Device Types / Network Device / Devi
 \field{indirection_table} array.
 Number of entries in \field{indirection_table} is (\field{indirection_table_mask} + 1).
 
-Field \field{unclassified_queue} contains the 0-based index of
-the receive virtqueue to place unclassified packets in. Index 0 corresponds to receiveq1.
+\field{rss_rq_id} is a receive virtqueue id. \field{vqn_1_16}
+consists of bits 1 to 16 of a vq number. For example, a
+\field{vqn_1_16} value of 3 corresponds to vq number 6,
+which maps to receiveq4.
+
+Field \field{unclassified_queue} contains the receive virtqueue
+in which to place unclassified packets.
 
-Field \field{indirection_table} contains an array of 0-based indices of receive virtqueues. Index 0 corresponds to receiveq1.
+Field \field{indirection_table} is an array of receive virtqueues.
 
 A driver sets \field{max_tx_vq} to inform a device how many transmit virtqueues it may use (transmitq1\ldots transmitq \field{max_tx_vq}).
 
@@ -1455,7 +1465,8 @@ \subsubsection{Control Virtqueue}\label{sec:Device Types / Network Device / Devi
 
 A driver MUST NOT send the VIRTIO_NET_CTRL_MQ_RSS_CONFIG command if the feature VIRTIO_NET_F_RSS has not been negotiated.
 
-A driver MUST fill the \field{indirection_table} array only with indices of enabled queues. Index 0 corresponds to receiveq1.
+A driver MUST fill the \field{indirection_table} array only with
+enabled receive virtqueues.
 
 The number of entries in \field{indirection_table} (\field{indirection_table_mask} + 1) MUST be a power of two.
 
@@ -1468,7 +1479,9 @@ \subsubsection{Control Virtqueue}\label{sec:Device Types / Network Device / Devi
 \begin{itemize}
 \item Calculate the hash of the packet as defined in \ref{sec:Device Types / Network Device / Device Operation / Processing of Incoming Packets / Hash calculation for incoming packets}.
 \item If the device did not calculate the hash for the specific packet, the device directs the packet to the receiveq specified by \field{unclassified_queue} of virtio_net_rss_config structure.
-\item Apply \field{indirection_table_mask} to the calculated hash and use the result as the index in the indirection table to get 0-based number of destination receiveq.
+\item Apply \field{indirection_table_mask} to the calculated hash
+and use the result as the index in the indirection table to get
+the destination receive virtqueue.
 \item If the destination receive queue is being reset (See \ref{sec:Basic Facilities of a Virtio Device / Virtqueues / Virtqueue Reset}), the device MUST drop the packet.
 \end{itemize}
 
-- 
2.26.2


---------------------------------------------------------------------
To unsubscribe, e-mail: virtio-dev-unsubscribe@lists.oasis-open.org
For additional commands, e-mail: virtio-dev-help@lists.oasis-open.org


^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [virtio-dev] Re: [PATCH v9 1/8] content: Add vq number text
  2023-03-28 20:17 ` [virtio-dev] [PATCH v9 1/8] content: Add vq number text Parav Pandit
@ 2023-03-29  9:01   ` Cornelia Huck
  0 siblings, 0 replies; 19+ messages in thread
From: Cornelia Huck @ 2023-03-29  9:01 UTC (permalink / raw)
  To: Parav Pandit, mst, virtio-dev, pasic
  Cc: sgarzare, virtio-comment, shahafs, Parav Pandit

On Tue, Mar 28 2023, Parav Pandit <parav@nvidia.com> wrote:

> Introduce vq number and its range so that subsequent patches can refer
> to it.
>
> Fixes: https://github.com/oasis-tcs/virtio-spec/issues/163
> Signed-off-by: Parav Pandit <parav@nvidia.com>
> ---
> changelog:
> v8->v9:
> - added inclusive when describing the vq number range
> - skipped comment to put virtqueue number wording first because we
>   prefer to use shorter vq number as much as possible
> v5->v6:
> - moved description close to introduction, it was in middle of
>   queue data transfer description
> v2->v3:
> - new patch
> ---
>  content.tex | 4 ++++
>  1 file changed, 4 insertions(+)
>
> diff --git a/content.tex b/content.tex
> index cff548a..3766bf9 100644
> --- a/content.tex
> +++ b/content.tex
> @@ -298,6 +298,10 @@ \section{Virtqueues}\label{sec:Basic Facilities of a Virtio Device / Virtqueues}
>  virtqueues\footnote{For example, the simplest network device has one virtqueue for
>  transmit and one for receive.}.
>  
> +Each virtqueue is identified by a vq number or also referred
> +to as a virtqueue number;

I think "identified by a vq number (also referred to as a virtqueue
number)" would read better.

> vq number range is from 0 to 65535
> +inclusive.
> +
>  Driver makes requests available to device by adding
>  an available buffer to the queue, i.e., adding a buffer
>  describing the request to a virtqueue, and optionally triggering


---------------------------------------------------------------------
To unsubscribe, e-mail: virtio-dev-unsubscribe@lists.oasis-open.org
For additional commands, e-mail: virtio-dev-help@lists.oasis-open.org


^ permalink raw reply	[flat|nested] 19+ messages in thread

* [virtio-dev] Re: [PATCH v9 2/8] transport-pci: Refer to the vq by its number
  2023-03-28 20:17 ` [virtio-dev] [PATCH v9 2/8] transport-pci: Refer to the vq by its number Parav Pandit
@ 2023-03-29  9:06   ` Cornelia Huck
  0 siblings, 0 replies; 19+ messages in thread
From: Cornelia Huck @ 2023-03-29  9:06 UTC (permalink / raw)
  To: Parav Pandit, mst, virtio-dev, pasic
  Cc: sgarzare, virtio-comment, shahafs, Parav Pandit, Max Gurtovoy,
	Jiri Pirko

On Tue, Mar 28 2023, Parav Pandit <parav@nvidia.com> wrote:

> Currently specification uses virtqueue index and
> number interchangeably to refer to the virtqueue.
>
> Instead refer to it by its number.
>
> This patch is on top of [1].
>
> [1] https://lists.oasis-open.org/archives/virtio-dev/202302/msg00527.html

Please drop this reference, as the patches have been merged in the
meanwhile.

>
> Fixes: https://github.com/oasis-tcs/virtio-spec/issues/163
> Reviewed-by: Max Gurtovoy <mgurtovoy@nvidia.com>
> Reviewed-by: Jiri Pirko <jiri@nvidia.com>
> Signed-off-by: Parav Pandit <parav@nvidia.com>
> ---
> changelog:
> v8->v9:
> - reword the sentence to avoid future tense, like rest of the other
>   fields description
> - reword the sentence to avoid multiple verbs use and put -> uses
> - use shorter name 'vq number' instead of 'virtqueue number'
> v7->v8:
> - remove note about first virtqueue number
> - skipped Max's comment to put word 'structure' in same line as its
>   crosses 65 chars limit per line
> - reworded queue_notification data set line, as '=' and vq number
>   wording was odd
> v2->v3:
> - addressed comments from Michael
> - changed vqn to virtqueue number in the Note
> - refer to vqn field instead of virtqueue number
> ---
>  transport-pci.tex | 13 +++++++------
>  1 file changed, 7 insertions(+), 6 deletions(-)

Reviewed-by: Cornelia Huck <cohuck@redhat.com>


---------------------------------------------------------------------
To unsubscribe, e-mail: virtio-dev-unsubscribe@lists.oasis-open.org
For additional commands, e-mail: virtio-dev-help@lists.oasis-open.org


^ permalink raw reply	[flat|nested] 19+ messages in thread

* [virtio-dev] Re: [PATCH v9 3/8] transport-mmio: Rename QueueNum register
  2023-03-28 20:17 ` [virtio-dev] [PATCH v9 3/8] transport-mmio: Rename QueueNum register Parav Pandit
@ 2023-03-29  9:15   ` Cornelia Huck
  2023-03-29 12:59     ` [virtio-dev] " Parav Pandit
  0 siblings, 1 reply; 19+ messages in thread
From: Cornelia Huck @ 2023-03-29  9:15 UTC (permalink / raw)
  To: Parav Pandit, mst, virtio-dev, pasic
  Cc: sgarzare, virtio-comment, shahafs, Parav Pandit, Jiri Pirko

On Tue, Mar 28 2023, Parav Pandit <parav@nvidia.com> wrote:

> Currently specification uses virtqueue index and number
> interchangeably to refer to the virtqueue.
>
> It is better to always refer to it the virtqueue in consistent manner.
>
> Two registers QueueNumMax and QueueNum actually reflects the queue size
> or queue depth indicating max and actual number of entries in the queue.
>
> These are further named differently between pci and mmio transport.
> PCI transport indicates queue size as queue_size.
>
> To bring consistency between pci and mmio transport, and to avoid
> confusion between number and index, rename the QueueNumMax and QueueNum
> registers to QueueSizeMax and QueueSize respectively.
>
> Fixes: https://github.com/oasis-tcs/virtio-spec/issues/163
> Reviewed-by: Jiri Pirko <jiri@nvidia.com>
> Signed-off-by: Parav Pandit <parav@nvidia.com>
>
> ---
> changelog:
> v8->v9:
> - added field tag to indicate field name instead of English word
> v0->v1:
> - replaced references of QueueNumMax to QueueSizeMax
> - replaced references of QueueNum to QueueSize
> - added note for renamed fields old name suggested by @Michael Tsirkin
> ---
>  transport-mmio.tex | 44 ++++++++++++++++++++++++++++++--------------
>  1 file changed, 30 insertions(+), 14 deletions(-)
>
> diff --git a/transport-mmio.tex b/transport-mmio.tex
> index f884a2c..9b450b8 100644
> --- a/transport-mmio.tex
> +++ b/transport-mmio.tex
> @@ -110,24 +110,32 @@ \subsection{MMIO Device Register Layout}\label{sec:Virtio Transport Options / Vi
>    \hline
>    \mmioreg{QueueSel}{Virtual queue index}{0x030}{W}{%
>      Writing to this register selects the virtual queue that the
> -    following operations on \field{QueueNumMax}, \field{QueueNum}, \field{QueueReady},
> +    following operations on \field{QueueSizeMax},
> +    \field{QueueSize}, \field{QueueReady},

I'm not sure it is worthwile keeping the lines short so aggressively
(after all, it does not affect the generated html/pdf), especially as it
makes the diff a bit harder to read, but I don't have a strong objection
to it.

On the whole,

Reviewed-by: Cornelia Huck <cohuck@redhat.com>


---------------------------------------------------------------------
To unsubscribe, e-mail: virtio-dev-unsubscribe@lists.oasis-open.org
For additional commands, e-mail: virtio-dev-help@lists.oasis-open.org


^ permalink raw reply	[flat|nested] 19+ messages in thread

* [virtio-dev] Re: [PATCH v9 4/8] transport-mmio: Refer to the vq by its number
  2023-03-28 20:17 ` [virtio-dev] [PATCH v9 4/8] transport-mmio: Refer to the vq by its number Parav Pandit
@ 2023-03-29  9:18   ` Cornelia Huck
  0 siblings, 0 replies; 19+ messages in thread
From: Cornelia Huck @ 2023-03-29  9:18 UTC (permalink / raw)
  To: Parav Pandit, mst, virtio-dev, pasic
  Cc: sgarzare, virtio-comment, shahafs, Parav Pandit, Jiri Pirko

On Tue, Mar 28 2023, Parav Pandit <parav@nvidia.com> wrote:

> Currently specification uses virtqueue index and
> number interchangeably to refer to the virtqueue.
>
> Instead refer to it by its number.
>
> Fixes: https://github.com/oasis-tcs/virtio-spec/issues/163
> Reviewed-by: Jiri Pirko <jiri@nvidia.com>
> Signed-off-by: Parav Pandit <parav@nvidia.com>
>
> ---
> changelog:
> v8->v9:
> - added 'by' at two places
> - replaced 'queue number' with 'vq number'
>
> v6->v7:
> - remove text around first vq as it is already covered in the basic
>   virtqueues facility section
> ---
>  transport-mmio.tex | 23 +++++++++--------------
>  1 file changed, 9 insertions(+), 14 deletions(-)

Reviewed-by: Cornelia Huck <cohuck@redhat.com>


---------------------------------------------------------------------
To unsubscribe, e-mail: virtio-dev-unsubscribe@lists.oasis-open.org
For additional commands, e-mail: virtio-dev-help@lists.oasis-open.org


^ permalink raw reply	[flat|nested] 19+ messages in thread

* [virtio-dev] Re: [PATCH v9 5/8] transport-ccw: Rename queue depth/size to other transports
  2023-03-28 20:17 ` [virtio-dev] [PATCH v9 5/8] transport-ccw: Rename queue depth/size to other transports Parav Pandit
@ 2023-03-29  9:23   ` Cornelia Huck
  0 siblings, 0 replies; 19+ messages in thread
From: Cornelia Huck @ 2023-03-29  9:23 UTC (permalink / raw)
  To: Parav Pandit, mst, virtio-dev, pasic
  Cc: sgarzare, virtio-comment, shahafs, Parav Pandit

On Tue, Mar 28 2023, Parav Pandit <parav@nvidia.com> wrote:

> max_num field reflects the maximum queue size/depth. Hence align name of
> this field with similar field in PCI and MMIO transport to
> max_queue_size.
> Similarly rename 'num' to 'size'.
>
> Fixes: https://github.com/oasis-tcs/virtio-spec/issues/163
> Signed-off-by: Parav Pandit <parav@nvidia.com>
>
> ---
> changelog:
> v8->v9:
> - replaced 'named' as 'known'
> v3->v4:
> - moved note to comment
> ---
>  transport-ccw.tex | 14 ++++++++------
>  1 file changed, 8 insertions(+), 6 deletions(-)
>
> diff --git a/transport-ccw.tex b/transport-ccw.tex
> index c492cb9..488c46c 100644
> --- a/transport-ccw.tex
> +++ b/transport-ccw.tex
> @@ -237,12 +237,12 @@ \subsubsection{Configuring a Virtqueue}\label{sec:Virtio Transport Options / Vir
>  \begin{lstlisting}
>  struct vq_config_block {
>          be16 index;
> -        be16 max_num;
> +        be16 max_queue_size; /* Previously known as max_num */

Nit: the comment should probably start with a lower-case 'p', as it is
not a complete sentence (further instances of this below).

Otherwise,

Reviewed-by: Cornelia Huck <cohuck@redhat.com>


---------------------------------------------------------------------
To unsubscribe, e-mail: virtio-dev-unsubscribe@lists.oasis-open.org
For additional commands, e-mail: virtio-dev-help@lists.oasis-open.org


^ permalink raw reply	[flat|nested] 19+ messages in thread

* [virtio-dev] Re: [PATCH v9 6/8] transport-ccw: Refer to the vq by its number
  2023-03-28 20:17 ` [virtio-dev] [PATCH v9 6/8] transport-ccw: Refer to the vq by its number Parav Pandit
@ 2023-03-29  9:30   ` Cornelia Huck
  2023-03-29 13:01     ` [virtio-dev] " Parav Pandit
  0 siblings, 1 reply; 19+ messages in thread
From: Cornelia Huck @ 2023-03-29  9:30 UTC (permalink / raw)
  To: Parav Pandit, mst, virtio-dev, pasic
  Cc: sgarzare, virtio-comment, shahafs, Parav Pandit

On Tue, Mar 28 2023, Parav Pandit <parav@nvidia.com> wrote:

> Currently specification uses virtqueue index and
> number interchangeably to refer to the virtqueue.
>
> Instead refer to it by its number.
>
> Fixes: https://github.com/oasis-tcs/virtio-spec/issues/163
> Signed-off-by: Parav Pandit <parav@nvidia.com>
>
> ---
> changelog:
> v8->v9:
> - replaced 'named' with 'known'
> - replaced 'queue number' with 'vq number'
> v3->v4:
> - moved note to comment
> v2->v3:
> - added comment note for queue_select similar to max_queue_size
> v0->v1:
> - new patch
> ---
>  transport-ccw.tex | 15 ++++++++-------
>  1 file changed, 8 insertions(+), 7 deletions(-)
>
> diff --git a/transport-ccw.tex b/transport-ccw.tex
> index 488c46c..0240db8 100644
> --- a/transport-ccw.tex
> +++ b/transport-ccw.tex
> @@ -236,12 +236,12 @@ \subsubsection{Configuring a Virtqueue}\label{sec:Virtio Transport Options / Vir
>  
>  \begin{lstlisting}
>  struct vq_config_block {
> -        be16 index;
> +        be16 queue_select; /* Previously known as index */
>          be16 max_queue_size; /* Previously known as max_num */

Same comment regarding s/Previously/previously/ as for the last patch.

Also, I'm not that happy with the name "queue_select". Sure, it matches
what pci and mmio use, but ccw does not quite use the same mechanism:
vq_config_block is not a structure that always exists where the meaning
of the fields is controlled by a selector field, but a structure that is
provided by the caller and then filled to refer to a certain vq. I'd
prefer this field to be named "vq_num" or something like that.


---------------------------------------------------------------------
To unsubscribe, e-mail: virtio-dev-unsubscribe@lists.oasis-open.org
For additional commands, e-mail: virtio-dev-help@lists.oasis-open.org


^ permalink raw reply	[flat|nested] 19+ messages in thread

* [virtio-dev] RE: [PATCH v9 3/8] transport-mmio: Rename QueueNum register
  2023-03-29  9:15   ` [virtio-dev] " Cornelia Huck
@ 2023-03-29 12:59     ` Parav Pandit
  2023-03-29 13:16       ` Cornelia Huck
  0 siblings, 1 reply; 19+ messages in thread
From: Parav Pandit @ 2023-03-29 12:59 UTC (permalink / raw)
  To: Cornelia Huck, mst, virtio-dev, pasic
  Cc: sgarzare, virtio-comment, Shahaf Shuler, Jiri Pirko



> From: Cornelia Huck <cohuck@redhat.com>
> Sent: Wednesday, March 29, 2023 5:16 AM
> 
> I'm not sure it is worthwile keeping the lines short so aggressively (after all, it
> does not affect the generated html/pdf), especially as it makes the diff a bit
> harder to read, but I don't have a strong objection to it.
>
I agree, 80 or 100 characters should be reasonable based on Linux kernel experience.

The short line requirement came from [1].
Shall I change [1] to 80 characters?

[1] https://github.com/oasis-tcs/virtio-spec/blob/b0414098602fbdb0bc5efa4ff06ea6cae8123ed4/_vimrc#L5

> On the whole,
> 
> Reviewed-by: Cornelia Huck <cohuck@redhat.com>


---------------------------------------------------------------------
To unsubscribe, e-mail: virtio-dev-unsubscribe@lists.oasis-open.org
For additional commands, e-mail: virtio-dev-help@lists.oasis-open.org


^ permalink raw reply	[flat|nested] 19+ messages in thread

* [virtio-dev] RE: [PATCH v9 6/8] transport-ccw: Refer to the vq by its number
  2023-03-29  9:30   ` [virtio-dev] " Cornelia Huck
@ 2023-03-29 13:01     ` Parav Pandit
  2023-03-29 13:18       ` Cornelia Huck
  0 siblings, 1 reply; 19+ messages in thread
From: Parav Pandit @ 2023-03-29 13:01 UTC (permalink / raw)
  To: Cornelia Huck, mst, virtio-dev, pasic
  Cc: sgarzare, virtio-comment, Shahaf Shuler



> From: Cornelia Huck <cohuck@redhat.com>
> Sent: Wednesday, March 29, 2023 5:30 AM
> 
> Same comment regarding s/Previously/previously/ as for the last patch.
>
Will change.
 
> Also, I'm not that happy with the name "queue_select". Sure, it matches what
> pci and mmio use, but ccw does not quite use the same mechanism:
> vq_config_block is not a structure that always exists where the meaning of the
> fields is controlled by a selector field, but a structure that is provided by the
> caller and then filled to refer to a certain vq. I'd prefer this field to be named
> "vq_num" or something like that.

Rest of the spec uses "vqn" at places. 
So I will change queue_select to vqn.
Are you ok with "vqn"?

---------------------------------------------------------------------
To unsubscribe, e-mail: virtio-dev-unsubscribe@lists.oasis-open.org
For additional commands, e-mail: virtio-dev-help@lists.oasis-open.org


^ permalink raw reply	[flat|nested] 19+ messages in thread

* [virtio-dev] RE: [PATCH v9 3/8] transport-mmio: Rename QueueNum register
  2023-03-29 12:59     ` [virtio-dev] " Parav Pandit
@ 2023-03-29 13:16       ` Cornelia Huck
  0 siblings, 0 replies; 19+ messages in thread
From: Cornelia Huck @ 2023-03-29 13:16 UTC (permalink / raw)
  To: Parav Pandit, mst, virtio-dev, pasic
  Cc: sgarzare, virtio-comment, Shahaf Shuler, Jiri Pirko

On Wed, Mar 29 2023, Parav Pandit <parav@nvidia.com> wrote:

>> From: Cornelia Huck <cohuck@redhat.com>
>> Sent: Wednesday, March 29, 2023 5:16 AM
>> 
>> I'm not sure it is worthwile keeping the lines short so aggressively (after all, it
>> does not affect the generated html/pdf), especially as it makes the diff a bit
>> harder to read, but I don't have a strong objection to it.
>>
> I agree, 80 or 100 characters should be reasonable based on Linux kernel experience.
>
> The short line requirement came from [1].
> Shall I change [1] to 80 characters?
>
> [1] https://github.com/oasis-tcs/virtio-spec/blob/b0414098602fbdb0bc5efa4ff06ea6cae8123ed4/_vimrc#L5

I wasn't even aware of that file, as I don't use vim... in any case, 65
seems way too short, especially as many (most?) lines are already longer
than that. 80 (or 100) seems more reasonable.

Michael, do you remember where the 65 came from? Is that anything we
still care about?


---------------------------------------------------------------------
To unsubscribe, e-mail: virtio-dev-unsubscribe@lists.oasis-open.org
For additional commands, e-mail: virtio-dev-help@lists.oasis-open.org


^ permalink raw reply	[flat|nested] 19+ messages in thread

* [virtio-dev] RE: [PATCH v9 6/8] transport-ccw: Refer to the vq by its number
  2023-03-29 13:01     ` [virtio-dev] " Parav Pandit
@ 2023-03-29 13:18       ` Cornelia Huck
  0 siblings, 0 replies; 19+ messages in thread
From: Cornelia Huck @ 2023-03-29 13:18 UTC (permalink / raw)
  To: Parav Pandit, mst, virtio-dev, pasic
  Cc: sgarzare, virtio-comment, Shahaf Shuler

On Wed, Mar 29 2023, Parav Pandit <parav@nvidia.com> wrote:

>> From: Cornelia Huck <cohuck@redhat.com>
>> Sent: Wednesday, March 29, 2023 5:30 AM
>> 
>> Same comment regarding s/Previously/previously/ as for the last patch.
>>
> Will change.
>  
>> Also, I'm not that happy with the name "queue_select". Sure, it matches what
>> pci and mmio use, but ccw does not quite use the same mechanism:
>> vq_config_block is not a structure that always exists where the meaning of the
>> fields is controlled by a selector field, but a structure that is provided by the
>> caller and then filled to refer to a certain vq. I'd prefer this field to be named
>> "vq_num" or something like that.
>
> Rest of the spec uses "vqn" at places. 
> So I will change queue_select to vqn.
> Are you ok with "vqn"?

vqn works for me.


---------------------------------------------------------------------
To unsubscribe, e-mail: virtio-dev-unsubscribe@lists.oasis-open.org
For additional commands, e-mail: virtio-dev-help@lists.oasis-open.org


^ permalink raw reply	[flat|nested] 19+ messages in thread

end of thread, other threads:[~2023-03-29 13:18 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-03-28 20:17 [virtio-dev] [PATCH v9 0/8] Rename queue index to queue number Parav Pandit
2023-03-28 20:17 ` [virtio-dev] [PATCH v9 1/8] content: Add vq number text Parav Pandit
2023-03-29  9:01   ` [virtio-dev] " Cornelia Huck
2023-03-28 20:17 ` [virtio-dev] [PATCH v9 2/8] transport-pci: Refer to the vq by its number Parav Pandit
2023-03-29  9:06   ` [virtio-dev] " Cornelia Huck
2023-03-28 20:17 ` [virtio-dev] [PATCH v9 3/8] transport-mmio: Rename QueueNum register Parav Pandit
2023-03-29  9:15   ` [virtio-dev] " Cornelia Huck
2023-03-29 12:59     ` [virtio-dev] " Parav Pandit
2023-03-29 13:16       ` Cornelia Huck
2023-03-28 20:17 ` [virtio-dev] [PATCH v9 4/8] transport-mmio: Refer to the vq by its number Parav Pandit
2023-03-29  9:18   ` [virtio-dev] " Cornelia Huck
2023-03-28 20:17 ` [virtio-dev] [PATCH v9 5/8] transport-ccw: Rename queue depth/size to other transports Parav Pandit
2023-03-29  9:23   ` [virtio-dev] " Cornelia Huck
2023-03-28 20:17 ` [virtio-dev] [PATCH v9 6/8] transport-ccw: Refer to the vq by its number Parav Pandit
2023-03-29  9:30   ` [virtio-dev] " Cornelia Huck
2023-03-29 13:01     ` [virtio-dev] " Parav Pandit
2023-03-29 13:18       ` Cornelia Huck
2023-03-28 20:17 ` [virtio-dev] [PATCH v9 7/8] virtio-net: Avoid duplicate receive queue example Parav Pandit
2023-03-28 20:17 ` [virtio-dev] [PATCH v9 8/8] virtio-net: Describe RSS using rss rq id Parav Pandit

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).