All of lore.kernel.org
 help / color / mirror / Atom feed
* [virtio-dev] [PATCH v1] virtio-net: support reset queue
@ 2022-02-10  9:06 Xuan Zhuo
  2022-02-10  9:26 ` [virtio-dev] " Jason Wang
  0 siblings, 1 reply; 5+ messages in thread
From: Xuan Zhuo @ 2022-02-10  9:06 UTC (permalink / raw)
  To: virtio-dev; +Cc: jasowang, Michael S. Tsirkin

This patch defines some requirements for virtio-net to support reset
queues.

Signed-off-by: Xuan Zhuo <xuanzhuo@linux.alibaba.com>
---
 conformance.tex |  1 +
 content.tex     | 12 ++++++++++++
 2 files changed, 13 insertions(+)

diff --git a/conformance.tex b/conformance.tex
index 42f8537..3656da5 100644
--- a/conformance.tex
+++ b/conformance.tex
@@ -396,6 +396,7 @@ \section{Conformance Targets}\label{sec:Conformance / Conformance Targets}
 \item \ref{devicenormative:Device Types / Network Device / Device Operation / Packet Transmission}
 \item \ref{devicenormative:Device Types / Network Device / Device Operation / Setting Up Receive Buffers}
 \item \ref{devicenormative:Device Types / Network Device / Device Operation / Processing of Incoming Packets}
+\item \ref{devicenormative:Device Types / Network Device / Device Operation / Reset Virtqueue}
 \item \ref{devicenormative:Device Types / Network Device / Device Operation / Control Virtqueue / Packet Receive Filtering}
 \item \ref{devicenormative:Device Types / Network Device / Device Operation / Control Virtqueue / Setting MAC Address Filtering}
 \item \ref{devicenormative:Device Types / Network Device / Device Operation / Control Virtqueue / Gratuitous Packet Sending}
diff --git a/content.tex b/content.tex
index c6f116c..af86689 100644
--- a/content.tex
+++ b/content.tex
@@ -4000,6 +4000,18 @@ \subsubsection{Processing of Incoming Packets}\label{sec:Device Types / Network
 #define VIRTIO_NET_HASH_REPORT_UDPv6_EX        9
 \end{lstlisting}
 
+\subsubsection{Reset Virtqueue}\label{sec:Device Types / Network Device / Device Operation / Reset Virtqueue}
+
+The receive and transmission virtqueues and the control virtqueue can implement
+reset based on Virtqueue Reset (See \ref{sec:Basic Facilities of a Virtio Device / Virtqueues / Virtqueue Reset}).
+
+\devicenormative{\paragraph}{Gratuitous Packet Sending}{Device Types / Network Device / Device Operation / Reset Virtqueue}
+
+After automatic receive steering or RSS receive steering has completed the
+selection of the queue, if the destination receive queue is in reset state,
+the device SHOULD re-select a different random queue. If all receive queues are
+in reset state, the device can drop the packet.
+
 \subsubsection{Control Virtqueue}\label{sec:Device Types / Network Device / Device Operation / Control Virtqueue}
 
 The driver uses the control virtqueue (if VIRTIO_NET_F_CTRL_VQ is
-- 
2.31.0


---------------------------------------------------------------------
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] 5+ messages in thread

* [virtio-dev] Re: [PATCH v1] virtio-net: support reset queue
  2022-02-10  9:06 [virtio-dev] [PATCH v1] virtio-net: support reset queue Xuan Zhuo
@ 2022-02-10  9:26 ` Jason Wang
  2022-02-18  9:27   ` Michael S. Tsirkin
  0 siblings, 1 reply; 5+ messages in thread
From: Jason Wang @ 2022-02-10  9:26 UTC (permalink / raw)
  To: Xuan Zhuo
  Cc: Virtio-Dev, Michael S. Tsirkin, Yuri Benditovich, Andrew Melnychenko

On Thu, Feb 10, 2022 at 5:06 PM Xuan Zhuo <xuanzhuo@linux.alibaba.com> wrote:
>
> This patch defines some requirements for virtio-net to support reset
> queues.
>
> Signed-off-by: Xuan Zhuo <xuanzhuo@linux.alibaba.com>
> ---
>  conformance.tex |  1 +
>  content.tex     | 12 ++++++++++++
>  2 files changed, 13 insertions(+)
>
> diff --git a/conformance.tex b/conformance.tex
> index 42f8537..3656da5 100644
> --- a/conformance.tex
> +++ b/conformance.tex
> @@ -396,6 +396,7 @@ \section{Conformance Targets}\label{sec:Conformance / Conformance Targets}
>  \item \ref{devicenormative:Device Types / Network Device / Device Operation / Packet Transmission}
>  \item \ref{devicenormative:Device Types / Network Device / Device Operation / Setting Up Receive Buffers}
>  \item \ref{devicenormative:Device Types / Network Device / Device Operation / Processing of Incoming Packets}
> +\item \ref{devicenormative:Device Types / Network Device / Device Operation / Reset Virtqueue}
>  \item \ref{devicenormative:Device Types / Network Device / Device Operation / Control Virtqueue / Packet Receive Filtering}
>  \item \ref{devicenormative:Device Types / Network Device / Device Operation / Control Virtqueue / Setting MAC Address Filtering}
>  \item \ref{devicenormative:Device Types / Network Device / Device Operation / Control Virtqueue / Gratuitous Packet Sending}
> diff --git a/content.tex b/content.tex
> index c6f116c..af86689 100644
> --- a/content.tex
> +++ b/content.tex
> @@ -4000,6 +4000,18 @@ \subsubsection{Processing of Incoming Packets}\label{sec:Device Types / Network
>  #define VIRTIO_NET_HASH_REPORT_UDPv6_EX        9
>  \end{lstlisting}
>
> +\subsubsection{Reset Virtqueue}\label{sec:Device Types / Network Device / Device Operation / Reset Virtqueue}
> +
> +The receive and transmission virtqueues and the control virtqueue can implement
> +reset based on Virtqueue Reset (See \ref{sec:Basic Facilities of a Virtio Device / Virtqueues / Virtqueue Reset}).
> +
> +\devicenormative{\paragraph}{Gratuitous Packet Sending}{Device Types / Network Device / Device Operation / Reset Virtqueue}
> +
> +After automatic receive steering or RSS receive steering has completed the
> +selection of the queue, if the destination receive queue is in reset state,
> +the device SHOULD re-select a different random queue.

This seems break the semantics of the indirection table? For RSS, I
think we probably need to drop.

Thanks

> If all receive queues are
> +in reset state, the device can drop the packet.
> +
>  \subsubsection{Control Virtqueue}\label{sec:Device Types / Network Device / Device Operation / Control Virtqueue}
>
>  The driver uses the control virtqueue (if VIRTIO_NET_F_CTRL_VQ is
> --
> 2.31.0
>


---------------------------------------------------------------------
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] 5+ messages in thread

* [virtio-dev] Re: [PATCH v1] virtio-net: support reset queue
  2022-02-10  9:26 ` [virtio-dev] " Jason Wang
@ 2022-02-18  9:27   ` Michael S. Tsirkin
  2022-02-21  3:02     ` Jason Wang
  0 siblings, 1 reply; 5+ messages in thread
From: Michael S. Tsirkin @ 2022-02-18  9:27 UTC (permalink / raw)
  To: Jason Wang; +Cc: Xuan Zhuo, Virtio-Dev, Yuri Benditovich, Andrew Melnychenko

On Thu, Feb 10, 2022 at 05:26:24PM +0800, Jason Wang wrote:
> On Thu, Feb 10, 2022 at 5:06 PM Xuan Zhuo <xuanzhuo@linux.alibaba.com> wrote:
> >
> > This patch defines some requirements for virtio-net to support reset
> > queues.
> >
> > Signed-off-by: Xuan Zhuo <xuanzhuo@linux.alibaba.com>
> > ---
> >  conformance.tex |  1 +
> >  content.tex     | 12 ++++++++++++
> >  2 files changed, 13 insertions(+)
> >
> > diff --git a/conformance.tex b/conformance.tex
> > index 42f8537..3656da5 100644
> > --- a/conformance.tex
> > +++ b/conformance.tex
> > @@ -396,6 +396,7 @@ \section{Conformance Targets}\label{sec:Conformance / Conformance Targets}
> >  \item \ref{devicenormative:Device Types / Network Device / Device Operation / Packet Transmission}
> >  \item \ref{devicenormative:Device Types / Network Device / Device Operation / Setting Up Receive Buffers}
> >  \item \ref{devicenormative:Device Types / Network Device / Device Operation / Processing of Incoming Packets}
> > +\item \ref{devicenormative:Device Types / Network Device / Device Operation / Reset Virtqueue}
> >  \item \ref{devicenormative:Device Types / Network Device / Device Operation / Control Virtqueue / Packet Receive Filtering}
> >  \item \ref{devicenormative:Device Types / Network Device / Device Operation / Control Virtqueue / Setting MAC Address Filtering}
> >  \item \ref{devicenormative:Device Types / Network Device / Device Operation / Control Virtqueue / Gratuitous Packet Sending}
> > diff --git a/content.tex b/content.tex
> > index c6f116c..af86689 100644
> > --- a/content.tex
> > +++ b/content.tex
> > @@ -4000,6 +4000,18 @@ \subsubsection{Processing of Incoming Packets}\label{sec:Device Types / Network
> >  #define VIRTIO_NET_HASH_REPORT_UDPv6_EX        9
> >  \end{lstlisting}
> >
> > +\subsubsection{Reset Virtqueue}\label{sec:Device Types / Network Device / Device Operation / Reset Virtqueue}
> > +
> > +The receive and transmission virtqueues and the control virtqueue can implement
> > +reset based on Virtqueue Reset (See \ref{sec:Basic Facilities of a Virtio Device / Virtqueues / Virtqueue Reset}).
> > +
> > +\devicenormative{\paragraph}{Gratuitous Packet Sending}{Device Types / Network Device / Device Operation / Reset Virtqueue}
> > +
> > +After automatic receive steering or RSS receive steering has completed the
> > +selection of the queue, if the destination receive queue is in reset state,
> > +the device SHOULD re-select a different random queue.
> 
> This seems break the semantics of the indirection table?

I don't really understand this random thing either. If we don't want to
drop then maybe use unclassified_queue?
And generally - is packet reordering better or worse than packet drops?

> For RSS, I
> think we probably need to drop.
> 
> Thanks
> 
> > If all receive queues are
> > +in reset state, the device can drop the packet.
> > +
> >  \subsubsection{Control Virtqueue}\label{sec:Device Types / Network Device / Device Operation / Control Virtqueue}
> >
> >  The driver uses the control virtqueue (if VIRTIO_NET_F_CTRL_VQ is
> > --
> > 2.31.0
> >


---------------------------------------------------------------------
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] 5+ messages in thread

* [virtio-dev] Re: [PATCH v1] virtio-net: support reset queue
  2022-02-18  9:27   ` Michael S. Tsirkin
@ 2022-02-21  3:02     ` Jason Wang
  2022-02-21  3:04       ` Xuan Zhuo
  0 siblings, 1 reply; 5+ messages in thread
From: Jason Wang @ 2022-02-21  3:02 UTC (permalink / raw)
  To: Michael S. Tsirkin
  Cc: Xuan Zhuo, Virtio-Dev, Yuri Benditovich, Andrew Melnychenko

On Fri, Feb 18, 2022 at 5:27 PM Michael S. Tsirkin <mst@redhat.com> wrote:
>
> On Thu, Feb 10, 2022 at 05:26:24PM +0800, Jason Wang wrote:
> > On Thu, Feb 10, 2022 at 5:06 PM Xuan Zhuo <xuanzhuo@linux.alibaba.com> wrote:
> > >
> > > This patch defines some requirements for virtio-net to support reset
> > > queues.
> > >
> > > Signed-off-by: Xuan Zhuo <xuanzhuo@linux.alibaba.com>
> > > ---
> > >  conformance.tex |  1 +
> > >  content.tex     | 12 ++++++++++++
> > >  2 files changed, 13 insertions(+)
> > >
> > > diff --git a/conformance.tex b/conformance.tex
> > > index 42f8537..3656da5 100644
> > > --- a/conformance.tex
> > > +++ b/conformance.tex
> > > @@ -396,6 +396,7 @@ \section{Conformance Targets}\label{sec:Conformance / Conformance Targets}
> > >  \item \ref{devicenormative:Device Types / Network Device / Device Operation / Packet Transmission}
> > >  \item \ref{devicenormative:Device Types / Network Device / Device Operation / Setting Up Receive Buffers}
> > >  \item \ref{devicenormative:Device Types / Network Device / Device Operation / Processing of Incoming Packets}
> > > +\item \ref{devicenormative:Device Types / Network Device / Device Operation / Reset Virtqueue}
> > >  \item \ref{devicenormative:Device Types / Network Device / Device Operation / Control Virtqueue / Packet Receive Filtering}
> > >  \item \ref{devicenormative:Device Types / Network Device / Device Operation / Control Virtqueue / Setting MAC Address Filtering}
> > >  \item \ref{devicenormative:Device Types / Network Device / Device Operation / Control Virtqueue / Gratuitous Packet Sending}
> > > diff --git a/content.tex b/content.tex
> > > index c6f116c..af86689 100644
> > > --- a/content.tex
> > > +++ b/content.tex
> > > @@ -4000,6 +4000,18 @@ \subsubsection{Processing of Incoming Packets}\label{sec:Device Types / Network
> > >  #define VIRTIO_NET_HASH_REPORT_UDPv6_EX        9
> > >  \end{lstlisting}
> > >
> > > +\subsubsection{Reset Virtqueue}\label{sec:Device Types / Network Device / Device Operation / Reset Virtqueue}
> > > +
> > > +The receive and transmission virtqueues and the control virtqueue can implement
> > > +reset based on Virtqueue Reset (See \ref{sec:Basic Facilities of a Virtio Device / Virtqueues / Virtqueue Reset}).
> > > +
> > > +\devicenormative{\paragraph}{Gratuitous Packet Sending}{Device Types / Network Device / Device Operation / Reset Virtqueue}
> > > +
> > > +After automatic receive steering or RSS receive steering has completed the
> > > +selection of the queue, if the destination receive queue is in reset state,
> > > +the device SHOULD re-select a different random queue.
> >
> > This seems break the semantics of the indirection table?
>
> I don't really understand this random thing either. If we don't want to
> drop then maybe use unclassified_queue?
> And generally - is packet reordering better or worse than packet drops?

Not sure, but this is something we need to clarify in the spec.

Personally, drop looks more safe than unclassified_queue. It gives
hints to administrator that something is wrong.

Thanks

>
> > For RSS, I
> > think we probably need to drop.
> >
> > Thanks
> >
> > > If all receive queues are
> > > +in reset state, the device can drop the packet.
> > > +
> > >  \subsubsection{Control Virtqueue}\label{sec:Device Types / Network Device / Device Operation / Control Virtqueue}
> > >
> > >  The driver uses the control virtqueue (if VIRTIO_NET_F_CTRL_VQ is
> > > --
> > > 2.31.0
> > >
>


---------------------------------------------------------------------
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] 5+ messages in thread

* [virtio-dev] Re: [PATCH v1] virtio-net: support reset queue
  2022-02-21  3:02     ` Jason Wang
@ 2022-02-21  3:04       ` Xuan Zhuo
  0 siblings, 0 replies; 5+ messages in thread
From: Xuan Zhuo @ 2022-02-21  3:04 UTC (permalink / raw)
  To: Jason Wang
  Cc: Virtio-Dev, Yuri Benditovich, Andrew Melnychenko, Michael S. Tsirkin

On Mon, 21 Feb 2022 11:02:54 +0800, Jason Wang <jasowang@redhat.com> wrote:
> On Fri, Feb 18, 2022 at 5:27 PM Michael S. Tsirkin <mst@redhat.com> wrote:
> >
> > On Thu, Feb 10, 2022 at 05:26:24PM +0800, Jason Wang wrote:
> > > On Thu, Feb 10, 2022 at 5:06 PM Xuan Zhuo <xuanzhuo@linux.alibaba.com> wrote:
> > > >
> > > > This patch defines some requirements for virtio-net to support reset
> > > > queues.
> > > >
> > > > Signed-off-by: Xuan Zhuo <xuanzhuo@linux.alibaba.com>
> > > > ---
> > > >  conformance.tex |  1 +
> > > >  content.tex     | 12 ++++++++++++
> > > >  2 files changed, 13 insertions(+)
> > > >
> > > > diff --git a/conformance.tex b/conformance.tex
> > > > index 42f8537..3656da5 100644
> > > > --- a/conformance.tex
> > > > +++ b/conformance.tex
> > > > @@ -396,6 +396,7 @@ \section{Conformance Targets}\label{sec:Conformance / Conformance Targets}
> > > >  \item \ref{devicenormative:Device Types / Network Device / Device Operation / Packet Transmission}
> > > >  \item \ref{devicenormative:Device Types / Network Device / Device Operation / Setting Up Receive Buffers}
> > > >  \item \ref{devicenormative:Device Types / Network Device / Device Operation / Processing of Incoming Packets}
> > > > +\item \ref{devicenormative:Device Types / Network Device / Device Operation / Reset Virtqueue}
> > > >  \item \ref{devicenormative:Device Types / Network Device / Device Operation / Control Virtqueue / Packet Receive Filtering}
> > > >  \item \ref{devicenormative:Device Types / Network Device / Device Operation / Control Virtqueue / Setting MAC Address Filtering}
> > > >  \item \ref{devicenormative:Device Types / Network Device / Device Operation / Control Virtqueue / Gratuitous Packet Sending}
> > > > diff --git a/content.tex b/content.tex
> > > > index c6f116c..af86689 100644
> > > > --- a/content.tex
> > > > +++ b/content.tex
> > > > @@ -4000,6 +4000,18 @@ \subsubsection{Processing of Incoming Packets}\label{sec:Device Types / Network
> > > >  #define VIRTIO_NET_HASH_REPORT_UDPv6_EX        9
> > > >  \end{lstlisting}
> > > >
> > > > +\subsubsection{Reset Virtqueue}\label{sec:Device Types / Network Device / Device Operation / Reset Virtqueue}
> > > > +
> > > > +The receive and transmission virtqueues and the control virtqueue can implement
> > > > +reset based on Virtqueue Reset (See \ref{sec:Basic Facilities of a Virtio Device / Virtqueues / Virtqueue Reset}).
> > > > +
> > > > +\devicenormative{\paragraph}{Gratuitous Packet Sending}{Device Types / Network Device / Device Operation / Reset Virtqueue}
> > > > +
> > > > +After automatic receive steering or RSS receive steering has completed the
> > > > +selection of the queue, if the destination receive queue is in reset state,
> > > > +the device SHOULD re-select a different random queue.
> > >
> > > This seems break the semantics of the indirection table?
> >
> > I don't really understand this random thing either. If we don't want to
> > drop then maybe use unclassified_queue?
> > And generally - is packet reordering better or worse than packet drops?
>
> Not sure, but this is something we need to clarify in the spec.
>
> Personally, drop looks more safe than unclassified_queue. It gives
> hints to administrator that something is wrong.

I also think drop can be selected in this case. My v2 has already been sent, and
you can see if there is any problem with v2.

Thanks.

>
> Thanks
>
> >
> > > For RSS, I
> > > think we probably need to drop.
> > >
> > > Thanks
> > >
> > > > If all receive queues are
> > > > +in reset state, the device can drop the packet.
> > > > +
> > > >  \subsubsection{Control Virtqueue}\label{sec:Device Types / Network Device / Device Operation / Control Virtqueue}
> > > >
> > > >  The driver uses the control virtqueue (if VIRTIO_NET_F_CTRL_VQ is
> > > > --
> > > > 2.31.0
> > > >
> >
>

---------------------------------------------------------------------
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] 5+ messages in thread

end of thread, other threads:[~2022-02-21  3:06 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-02-10  9:06 [virtio-dev] [PATCH v1] virtio-net: support reset queue Xuan Zhuo
2022-02-10  9:26 ` [virtio-dev] " Jason Wang
2022-02-18  9:27   ` Michael S. Tsirkin
2022-02-21  3:02     ` Jason Wang
2022-02-21  3:04       ` Xuan Zhuo

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.