All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jason Wang <jasowang@redhat.com>
To: "Michael S. Tsirkin" <mst@redhat.com>
Cc: Cornelia Huck <cohuck@redhat.com>,
	qemu-devel <qemu-devel@nongnu.org>, Yechuan <yechuan@huawei.com>,
	"Gonglei \(Arei\)" <arei.gonglei@huawei.com>,
	Huangzhichao <huangzhichao@huawei.com>,
	Stefan Hajnoczi <stefanha@redhat.com>,
	pbonzini <pbonzini@redhat.com>,
	"Longpeng\(Mike\)" <longpeng2@huawei.com>,
	Stefano Garzarella <sgarzare@redhat.com>
Subject: Re: [RFC 02/10] vhost: add 3 commands for vhost-vdpa
Date: Wed, 5 Jan 2022 17:21:02 +0800	[thread overview]
Message-ID: <CACGkMEuJryvBzAZOaqP4QV=aj0Rf95C_kWpg9dh4tsQXdbEUaw@mail.gmail.com> (raw)
In-Reply-To: <20220105030025-mutt-send-email-mst@kernel.org>

On Wed, Jan 5, 2022 at 5:12 PM Michael S. Tsirkin <mst@redhat.com> wrote:
>
> On Wed, Jan 05, 2022 at 03:54:13PM +0800, Jason Wang wrote:
> > On Wed, Jan 5, 2022 at 3:02 PM Michael S. Tsirkin <mst@redhat.com> wrote:
> > >
> > > On Wed, Jan 05, 2022 at 12:35:53PM +0800, Jason Wang wrote:
> > > > On Wed, Jan 5, 2022 at 8:59 AM Longpeng(Mike) <longpeng2@huawei.com> wrote:
> > > > >
> > > > > From: Longpeng <longpeng2@huawei.com>
> > > > >
> > > > > To support generic vdpa deivce, we need add the following ioctls:
> > > > > - GET_VECTORS_NUM: the count of vectors that supported
> > > >
> > > > Does this mean MSI vectors? If yes, it looks like a layer violation:
> > > > vhost is transport independent.
> > >
> > > Well *guest* needs to know how many vectors device supports.
> > > I don't think there's a way around that. Do you?
> >
> > We have VHOST_SET_VRING/CONFIG_CALL which is per vq. I think we can
> > simply assume #vqs + 1?
>
> Some hardware may be more limited. E.g. there could be a bunch of vqs
> which don't need a dedicated interrupt. Or device could support a single
> interrupt shared between VQs.

Right, but in the worst case, we may just waste some eventfds?

Or if we want to be optimized in the case you mentioned above, we need
to know the association among vectors and vqs which requires more
extensions.

1) API to know which vectors does a dedicated VQ belong
2) the kick eventfd is set based on the vectors but not vq

And such mappings are not static, e.g IFCVF requesting MSI-X vectors
during DRIVER_OK.

Thanks

>
>
> > > Otherwise guests will at best be suboptimal.
> > >
> > > >  And it reveals device implementation
> > > > details which block (cross vendor) migration.
> > > >
> > > > Thanks
> > >
> > > Not necessarily, userspace can hide this from guest if it
> > > wants to, just validate.
> >
> > If we can hide it at vhost/uAPI level, it would be even better?
> >
> > Thanks
> >
> > >
> > >
> > > > > - GET_CONFIG_SIZE: the size of the virtio config space
> > > > > - GET_VQS_NUM: the count of virtqueues that exported
> > > > >
> > > > > Signed-off-by: Longpeng <longpeng2@huawei.com>
> > > > > ---
> > > > >  linux-headers/linux/vhost.h | 10 ++++++++++
> > > > >  1 file changed, 10 insertions(+)
> > > > >
> > > > > diff --git a/linux-headers/linux/vhost.h b/linux-headers/linux/vhost.h
> > > > > index c998860d7b..c5edd75d15 100644
> > > > > --- a/linux-headers/linux/vhost.h
> > > > > +++ b/linux-headers/linux/vhost.h
> > > > > @@ -150,4 +150,14 @@
> > > > >  /* Get the valid iova range */
> > > > >  #define VHOST_VDPA_GET_IOVA_RANGE      _IOR(VHOST_VIRTIO, 0x78, \
> > > > >                                              struct vhost_vdpa_iova_range)
> > > > > +
> > > > > +/* Get the number of vectors */
> > > > > +#define VHOST_VDPA_GET_VECTORS_NUM     _IOR(VHOST_VIRTIO, 0x79, int)
> > > > > +
> > > > > +/* Get the virtio config size */
> > > > > +#define VHOST_VDPA_GET_CONFIG_SIZE     _IOR(VHOST_VIRTIO, 0x80, int)
> > > > > +
> > > > > +/* Get the number of virtqueues */
> > > > > +#define VHOST_VDPA_GET_VQS_NUM         _IOR(VHOST_VIRTIO, 0x81, int)
> > > > > +
> > > > >  #endif
> > > > > --
> > > > > 2.23.0
> > > > >
> > >
>



  reply	other threads:[~2022-01-05  9:22 UTC|newest]

Thread overview: 52+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-01-05  0:58 [RFC 00/10] add generic vDPA device support Longpeng(Mike) via
2022-01-05  0:58 ` [RFC 01/10] virtio: get class_id and pci device id by the virtio id Longpeng(Mike) via
2022-01-05  4:37   ` Jason Wang
2022-01-05  5:47     ` longpeng2--- via
2022-01-05  6:15       ` Jason Wang
2022-01-10  3:03         ` longpeng2--- via
2022-01-05 10:46   ` Cornelia Huck
2022-01-06  1:50     ` longpeng2--- via
2022-01-10  5:43   ` Michael S. Tsirkin
2022-01-10  6:27     ` longpeng2--- via
2022-01-10  7:14       ` Michael S. Tsirkin
2022-01-05  0:58 ` [RFC 02/10] vhost: add 3 commands for vhost-vdpa Longpeng(Mike) via
2022-01-05  4:35   ` Jason Wang
2022-01-05  6:40     ` longpeng2--- via
2022-01-05  6:43       ` Jason Wang
2022-01-05  7:02     ` Michael S. Tsirkin
2022-01-05  7:54       ` Jason Wang
2022-01-05  8:37         ` longpeng2--- via
2022-01-05  9:09           ` Jason Wang
2022-01-05 12:26             ` Michael S. Tsirkin
2022-01-06  2:34               ` Jason Wang
2022-01-06  8:00                 ` longpeng2--- via
2022-01-07  2:41                   ` Jason Wang
2022-01-06 14:09                 ` Michael S. Tsirkin
2022-01-07  2:53                   ` Jason Wang
2022-01-05  9:12         ` Michael S. Tsirkin
2022-01-05  9:21           ` Jason Wang [this message]
2022-01-05  0:58 ` [RFC 03/10] vdpa: add the infrastructure of vdpa-dev Longpeng(Mike) via
2022-01-05  9:48   ` Stefan Hajnoczi
2022-01-06  1:22     ` longpeng2--- via
2022-01-06 11:25       ` Stefan Hajnoczi
2022-01-07  2:22         ` Jason Wang
2022-01-05  0:58 ` [RFC 04/10] vdpa-dev: implement the instance_init/class_init interface Longpeng(Mike) via
2022-01-05 10:00   ` Stefan Hajnoczi
2022-01-06  2:39     ` longpeng2--- via
2022-01-05 11:28   ` Stefano Garzarella
2022-01-06  2:40     ` longpeng2--- via
2022-01-05  0:58 ` [RFC 05/10] vdpa-dev: implement the realize interface Longpeng(Mike) via
2022-01-05 10:17   ` Stefan Hajnoczi
2022-01-06  3:02     ` longpeng2--- via
2022-01-06 11:34       ` Stefan Hajnoczi
2022-01-17 12:34         ` longpeng2--- via
2022-01-19 17:15           ` Stefan Hajnoczi
2022-01-05  0:58 ` [RFC 06/10] vdpa-dev: implement the unrealize interface Longpeng(Mike) via
2022-01-05 11:16   ` Stefano Garzarella
2022-01-06  3:23     ` longpeng2--- via
2022-01-10  9:38       ` Stefano Garzarella
2022-01-05  0:58 ` [RFC 07/10] vdpa-dev: implement the get_config/set_config interface Longpeng(Mike) via
2022-01-05  0:58 ` [RFC 08/10] vdpa-dev: implement the get_features interface Longpeng(Mike) via
2022-01-05  0:58 ` [RFC 09/10] vdpa-dev: implement the set_status interface Longpeng(Mike) via
2022-01-05  0:59 ` [RFC 10/10] vdpa-dev: mark the device as unmigratable Longpeng(Mike) via
2022-01-05 10:21 ` [RFC 00/10] add generic vDPA device support Stefan Hajnoczi

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='CACGkMEuJryvBzAZOaqP4QV=aj0Rf95C_kWpg9dh4tsQXdbEUaw@mail.gmail.com' \
    --to=jasowang@redhat.com \
    --cc=arei.gonglei@huawei.com \
    --cc=cohuck@redhat.com \
    --cc=huangzhichao@huawei.com \
    --cc=longpeng2@huawei.com \
    --cc=mst@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=sgarzare@redhat.com \
    --cc=stefanha@redhat.com \
    --cc=yechuan@huawei.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.