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: Jason Wang <jasowang@redhat.com>,
	virtualization@lists.linux-foundation.org,
	linux-kernel@vger.kernel.org, netdev@vger.kernel.org,
	virtio-dev@lists.oasis-open.org, wexu@redhat.com,
	jfreimann@redhat.com, maxime.coquelin@redhat.com
Subject: [virtio-dev] Re: [PATCH net-next v3 01/13] virtio: add packed ring types and macros
Date: Fri, 30 Nov 2018 07:47:48 -0500	[thread overview]
Message-ID: <20181130074720-mutt-send-email-mst@kernel.org> (raw)
In-Reply-To: <20181130095339.GA11984@debian>

On Fri, Nov 30, 2018 at 05:53:40PM +0800, Tiwei Bie wrote:
> On Fri, Nov 30, 2018 at 04:10:55PM +0800, Jason Wang wrote:
> > 
> > On 2018/11/21 下午6:03, Tiwei Bie wrote:
> > > Add types and macros for packed ring.
> > > 
> > > Signed-off-by: Tiwei Bie <tiwei.bie@intel.com>
> > > ---
> > >   include/uapi/linux/virtio_config.h |  3 +++
> > >   include/uapi/linux/virtio_ring.h   | 52 ++++++++++++++++++++++++++++++++++++++
> > >   2 files changed, 55 insertions(+)
> > > 
> > > diff --git a/include/uapi/linux/virtio_config.h b/include/uapi/linux/virtio_config.h
> > > index 449132c76b1c..1196e1c1d4f6 100644
> > > --- a/include/uapi/linux/virtio_config.h
> > > +++ b/include/uapi/linux/virtio_config.h
> > > @@ -75,6 +75,9 @@
> > >    */
> > >   #define VIRTIO_F_IOMMU_PLATFORM		33
> > > +/* This feature indicates support for the packed virtqueue layout. */
> > > +#define VIRTIO_F_RING_PACKED		34
> > > +
> > >   /*
> > >    * Does the device support Single Root I/O Virtualization?
> > >    */
> > > diff --git a/include/uapi/linux/virtio_ring.h b/include/uapi/linux/virtio_ring.h
> > > index 6d5d5faa989b..2414f8af26b3 100644
> > > --- a/include/uapi/linux/virtio_ring.h
> > > +++ b/include/uapi/linux/virtio_ring.h
> > > @@ -44,6 +44,13 @@
> > >   /* This means the buffer contains a list of buffer descriptors. */
> > >   #define VRING_DESC_F_INDIRECT	4
> > > +/*
> > > + * Mark a descriptor as available or used in packed ring.
> > > + * Notice: they are defined as shifts instead of shifted values.
> > 
> > 
> > This looks inconsistent to previous flags, any reason for using shifts?
> 
> Yeah, it was suggested to use shifts, as _F_ should be a bit
> number, not a shifted value:
> 
> https://patchwork.ozlabs.org/patch/942296/#1989390

But let's add a _SPLIT_ variant that uses shifts consistently.


> > 
> > 
> > > + */
> > > +#define VRING_PACKED_DESC_F_AVAIL	7
> > > +#define VRING_PACKED_DESC_F_USED	15
> > > +
> > >   /* The Host uses this in used->flags to advise the Guest: don't kick me when
> > >    * you add a buffer.  It's unreliable, so it's simply an optimization.  Guest
> > >    * will still kick if it's out of buffers. */
> > > @@ -53,6 +60,23 @@
> > >    * optimization.  */
> > >   #define VRING_AVAIL_F_NO_INTERRUPT	1
> > > +/* Enable events in packed ring. */
> > > +#define VRING_PACKED_EVENT_FLAG_ENABLE	0x0
> > > +/* Disable events in packed ring. */
> > > +#define VRING_PACKED_EVENT_FLAG_DISABLE	0x1
> > > +/*
> > > + * Enable events for a specific descriptor in packed ring.
> > > + * (as specified by Descriptor Ring Change Event Offset/Wrap Counter).
> > > + * Only valid if VIRTIO_RING_F_EVENT_IDX has been negotiated.
> > > + */
> > > +#define VRING_PACKED_EVENT_FLAG_DESC	0x2
> > 
> > 
> > Any reason for using _FLAG_ instead of _F_?
> 
> Yeah, it was suggested to not use _F_, as these are values,
> should not have _F_:
> 
> https://patchwork.ozlabs.org/patch/942296/#1989390
> 
> Regards,
> Tiwei
> 
> > 
> > Thanks
> > 
> > 
> > > +
> > > +/*
> > > + * Wrap counter bit shift in event suppression structure
> > > + * of packed ring.
> > > + */
> > > +#define VRING_PACKED_EVENT_F_WRAP_CTR	15
> > > +
> > >   /* We support indirect buffer descriptors */
> > >   #define VIRTIO_RING_F_INDIRECT_DESC	28
> > > @@ -171,4 +195,32 @@ static inline int vring_need_event(__u16 event_idx, __u16 new_idx, __u16 old)
> > >   	return (__u16)(new_idx - event_idx - 1) < (__u16)(new_idx - old);
> > >   }
> > > +struct vring_packed_desc_event {
> > > +	/* Descriptor Ring Change Event Offset/Wrap Counter. */
> > > +	__le16 off_wrap;
> > > +	/* Descriptor Ring Change Event Flags. */
> > > +	__le16 flags;
> > > +};
> > > +
> > > +struct vring_packed_desc {
> > > +	/* Buffer Address. */
> > > +	__le64 addr;
> > > +	/* Buffer Length. */
> > > +	__le32 len;
> > > +	/* Buffer ID. */
> > > +	__le16 id;
> > > +	/* The flags depending on descriptor type. */
> > > +	__le16 flags;
> > > +};
> > > +
> > > +struct vring_packed {
> > > +	unsigned int num;
> > > +
> > > +	struct vring_packed_desc *desc;
> > > +
> > > +	struct vring_packed_desc_event *driver;
> > > +
> > > +	struct vring_packed_desc_event *device;
> > > +};
> > > +
> > >   #endif /* _UAPI_LINUX_VIRTIO_RING_H */

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


  parent reply	other threads:[~2018-11-30 12:47 UTC|newest]

Thread overview: 56+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-11-21 10:03 [virtio-dev] [PATCH net-next v3 00/13] virtio: support packed ring Tiwei Bie
2018-11-21 10:03 ` [PATCH net-next v3 01/13] virtio: add packed ring types and macros Tiwei Bie
2018-11-21 10:03 ` [virtio-dev] " Tiwei Bie
2018-11-30  8:10   ` [virtio-dev] " Jason Wang
2018-11-30  9:53     ` Tiwei Bie
2018-11-30 12:47       ` Michael S. Tsirkin
2018-11-30 12:47       ` Michael S. Tsirkin [this message]
2018-11-30 13:01         ` [virtio-dev] " Maxime Coquelin
2018-11-30 13:52           ` Michael S. Tsirkin
2018-11-30 13:52           ` [virtio-dev] " Michael S. Tsirkin
2018-11-30 15:37             ` Tiwei Bie
2018-11-30 15:37             ` [virtio-dev] " Tiwei Bie
2018-11-30 15:53               ` Michael S. Tsirkin
2018-11-30 16:24                 ` Tiwei Bie
2018-11-30 16:24                 ` [virtio-dev] " Tiwei Bie
2018-11-30 16:46                   ` Michael S. Tsirkin
2018-11-30 16:46                   ` [virtio-dev] " Michael S. Tsirkin
2018-12-01  2:03                     ` Tiwei Bie
2018-12-01  2:03                     ` [virtio-dev] " Tiwei Bie
2018-11-30 15:53               ` Michael S. Tsirkin
2018-11-30  9:53     ` Tiwei Bie
2018-11-30  8:10   ` Jason Wang
2018-11-21 10:03 ` [PATCH net-next v3 02/13] virtio_ring: add _split suffix for split ring functions Tiwei Bie
2018-11-21 10:03 ` [virtio-dev] " Tiwei Bie
2018-11-21 10:03 ` [PATCH net-next v3 03/13] virtio_ring: put split ring functions together Tiwei Bie
2018-11-21 10:03 ` [virtio-dev] " Tiwei Bie
2018-11-21 10:03 ` [PATCH net-next v3 04/13] virtio_ring: put split ring fields in a sub struct Tiwei Bie
2018-11-21 10:03 ` [virtio-dev] " Tiwei Bie
2018-11-21 10:03 ` [PATCH net-next v3 05/13] virtio_ring: introduce debug helpers Tiwei Bie
2018-11-21 10:03 ` [virtio-dev] " Tiwei Bie
2018-11-21 10:03 ` [virtio-dev] [PATCH net-next v3 06/13] virtio_ring: introduce helper for indirect feature Tiwei Bie
2018-11-21 10:03 ` Tiwei Bie
2018-11-21 10:03 ` [PATCH net-next v3 07/13] virtio_ring: allocate desc state for split ring separately Tiwei Bie
2018-11-21 10:03 ` [virtio-dev] " Tiwei Bie
2018-11-21 10:03 ` [PATCH net-next v3 08/13] virtio_ring: extract split ring handling from ring creation Tiwei Bie
2018-11-21 10:03 ` [virtio-dev] " Tiwei Bie
2018-11-21 10:03 ` [virtio-dev] [PATCH net-next v3 09/13] virtio_ring: cache whether we will use DMA API Tiwei Bie
2018-11-21 10:03 ` Tiwei Bie
2018-11-21 10:03 ` [virtio-dev] [PATCH net-next v3 10/13] virtio_ring: introduce packed ring support Tiwei Bie
2018-11-21 10:03 ` Tiwei Bie
2018-11-21 10:03 ` [PATCH net-next v3 11/13] virtio_ring: leverage event idx in packed ring Tiwei Bie
2018-11-21 10:03 ` [virtio-dev] " Tiwei Bie
2018-11-21 10:03 ` [virtio-dev] [PATCH net-next v3 12/13] virtio_ring: disable packed ring on unsupported transports Tiwei Bie
2018-11-21 10:03 ` Tiwei Bie
2018-11-21 10:03 ` [virtio-dev] [PATCH net-next v3 13/13] virtio_ring: advertize packed ring layout Tiwei Bie
2018-11-21 10:03 ` Tiwei Bie
2018-11-21 12:20 ` [virtio-dev] Re: [PATCH net-next v3 00/13] virtio: support packed ring Michael S. Tsirkin
2018-11-21 12:42   ` Tiwei Bie
2018-11-21 13:46     ` Jason Wang
2018-11-21 13:46     ` [virtio-dev] " Jason Wang
2018-11-21 12:42   ` Tiwei Bie
2018-11-21 17:37   ` David Miller
2018-11-21 12:20 ` Michael S. Tsirkin
2018-11-27  6:08 ` Michael S. Tsirkin
2018-11-27  6:08 ` [virtio-dev] " Michael S. Tsirkin
2018-11-27  6:18   ` David Miller

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=20181130074720-mutt-send-email-mst@kernel.org \
    --to=mst@redhat.com \
    --cc=jasowang@redhat.com \
    --cc=jfreimann@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=maxime.coquelin@redhat.com \
    --cc=netdev@vger.kernel.org \
    --cc=tiwei.bie@intel.com \
    --cc=virtio-dev@lists.oasis-open.org \
    --cc=virtualization@lists.linux-foundation.org \
    --cc=wexu@redhat.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.