All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Michael S. Tsirkin" <mst@redhat.com>
To: Tiwei Bie <tiwei.bie@intel.com>
Cc: cohuck@redhat.com, stefanha@redhat.com, pbonzini@redhat.com,
	virtio-dev@lists.oasis-open.org, dan.daly@intel.com,
	alexander.h.duyck@intel.com, mark.d.rustad@intel.com,
	cunming.liang@intel.com, zhihong.wang@intel.com
Subject: Re: [virtio-dev] [PATCH v3] content: support SR-IOV
Date: Wed, 23 May 2018 22:34:29 +0300	[thread overview]
Message-ID: <20180523223204-mutt-send-email-mst@kernel.org> (raw)
In-Reply-To: <20180523204446-mutt-send-email-mst@kernel.org>

On Wed, May 23, 2018 at 08:54:47PM +0300, Michael S. Tsirkin wrote:
> On Tue, May 22, 2018 at 06:26:15PM +0800, Tiwei Bie wrote:
> > Allocate a feature bit for virtio devices which support SR-IOV.
> > 
> > Suggested-by: Michael S. Tsirkin <mst@redhat.com>
> > Signed-off-by: Tiwei Bie <tiwei.bie@intel.com>
> > Fixes: https://github.com/oasis-tcs/virtio-spec/issues/11
> > ---
> > More details can be found from this thread:
> > https://patchwork.kernel.org/patch/10285541/
> > 
> > This patch needs below patch applied first:
> > https://github.com/oasis-tcs/virtio-spec/issues/10
> > https://lists.oasis-open.org/archives/virtio-dev/201805/msg00046.html
> > 
> > v2 -> v3:
> > - Improve the wording (Cornelia);
> > 
> > v1 -> v2:
> > - s/Reserve/Allocate/ (MST);
> > - Add a Fixes tag (MST);
> > - Be more explicit in driver requirement (MST);
> > - Remove the "device MAY fail" description (MST);
> > - Rebase on IO_BARRIER patch;
> > 
> > RFC -> v1:
> > - Mention PCI in the description (Cornelia);
> > 
> >  content.tex | 15 +++++++++++++--
> >  1 file changed, 13 insertions(+), 2 deletions(-)
> > 
> > diff --git a/content.tex b/content.tex
> > index 95c243f..e9e6f9a 100644
> > --- a/content.tex
> > +++ b/content.tex
> > @@ -95,10 +95,10 @@ Feature bits are allocated as follows:
> >  \begin{description}
> >  \item[0 to 23] Feature bits for the specific device type
> >  
> > -\item[24 to 36] Feature bits reserved for extensions to the queue and
> > +\item[24 to 37] Feature bits reserved for extensions to the queue and
> >    feature negotiation mechanisms
> >  
> > -\item[37 and above] Feature bits reserved for future extensions.
> > +\item[38 and above] Feature bits reserved for future extensions.
> >  \end{description}
> >  
> >  \begin{note}
> > @@ -5357,6 +5357,9 @@ Descriptors} and \ref{sec:Packed Virtqueues / Indirect Flag: Scatter-Gather Supp
> >    better performance.  This feature indicates whether
> >    a stronger form of barrier suitable for hardware
> >    devices is necessary.
> > +  \item[VIRTIO_F_SR_IOV(37)] This feature indicates that
> > +  the device supports Single Root I/O Virtualization.
> > +  Currently only PCI devices support this feature.
> 
> I guess the assumption is that all VFs and the PF are of the same type?
> 
> I feel it might be handy down the road to support mixing
> types. For this reason, to avoid binding a wrong driver
> to a VF, I propose that all VFs have this bit too,
> and require that drivers ignore VFs without this bit.
> 
> What do you think?

Thinking more about it, I can see how this might
interfere with passing VFs through to legacy nested guests.
How about reversing it then?

Require that drivers MUST NOT negotiate VIRTIO_F_SR_IOV
if device does not have an SRIOV capability or
is not a PCI device, in particular a VF.

And say a device without SRIOV cap SHOULD NOT expose this bit.



> >  \end{description}
> >  
> >  \drivernormative{\section}{Reserved Feature Bits}{Reserved Feature Bits}
> > @@ -5376,6 +5379,11 @@ A driver SHOULD accept VIRTIO_F_IO_BARRIER if it is offered.
> >  If VIRTIO_F_IO_BARRIER has been negotiated, a driver MUST use
> >  the barriers suitable for hardware devices.
> >  
> > +A driver SHOULD accept VIRTIO_F_SR_IOV if it is offered.
> > +If VIRTIO_F_SR_IOV has been negotiated, a driver can
> > +enable virtual functions through the device's PCI SR-IOV
> > +capability structure.
> 
> I feel the last sentence isn't clear enough.  How about
> 
> a driver MUST negotiate VIRTIO_F_SR_IOV and complete the feature
> negotiation (including setting the DRIVER_OK \field{status} bit) before
> enabling virtual functions through the device's PCI SR-IOV capability
> structure.
> 
> > +
> >  \devicenormative{\section}{Reserved Feature Bits}{Reserved Feature Bits}
> >  
> >  A device MUST offer VIRTIO_F_VERSION_1.  A device MAY fail to operate further
> > @@ -5392,6 +5400,9 @@ buffers in the same order in which they have been available.
> >  A device MAY fail to operate further if VIRTIO_F_IO_BARRIER
> >  is not accepted.
> >  
> > +A device SHOULD offer VIRTIO_F_SR_IOV if it presents a PCI
> > +SR-IOV capability structure.
> > +
> >  \section{Legacy Interface: Reserved Feature Bits}\label{sec:Reserved Feature Bits / Legacy Interface: Reserved Feature Bits}
> >  
> >  Transitional devices MAY offer the following:
> 
> 
> 
> > -- 
> > 2.17.0
> > 
> > 
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: virtio-dev-unsubscribe@lists.oasis-open.org
> > For additional commands, e-mail: virtio-dev-help@lists.oasis-open.org

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


  reply	other threads:[~2018-05-23 19:34 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-05-22 10:26 [virtio-dev] [PATCH v3] content: support SR-IOV Tiwei Bie
2018-05-22 11:03 ` [virtio-dev] " Cornelia Huck
2018-05-23 17:54 ` [virtio-dev] " Michael S. Tsirkin
2018-05-23 19:34   ` Michael S. Tsirkin [this message]
2018-05-24  0:06     ` Tiwei Bie
2018-05-24 13:44       ` Michael S. Tsirkin
2018-05-24 15:15         ` Tiwei Bie
2018-05-24 15:20           ` Michael S. Tsirkin
2018-05-24 15:27             ` Tiwei Bie

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=20180523223204-mutt-send-email-mst@kernel.org \
    --to=mst@redhat.com \
    --cc=alexander.h.duyck@intel.com \
    --cc=cohuck@redhat.com \
    --cc=cunming.liang@intel.com \
    --cc=dan.daly@intel.com \
    --cc=mark.d.rustad@intel.com \
    --cc=pbonzini@redhat.com \
    --cc=stefanha@redhat.com \
    --cc=tiwei.bie@intel.com \
    --cc=virtio-dev@lists.oasis-open.org \
    --cc=zhihong.wang@intel.com \
    /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.