From: Eugenio Perez Martin <eperezma@redhat.com>
To: Jason Wang <jasowang@redhat.com>
Cc: qemu-devel@nongnu.org, "Michael S. Tsirkin" <mst@redhat.com>,
si-wei.liu@oracle.com, Lei Yang <leiyang@redhat.com>,
Dragos Tatulea <dtatulea@nvidia.com>,
Zhu Lingshan <lingshan.zhu@intel.com>,
Parav Pandit <parav@mellanox.com>,
Stefano Garzarella <sgarzare@redhat.com>,
Laurent Vivier <lvivier@redhat.com>
Subject: Re: [PATCH for 9.0 07/12] vdpa: set backend capabilities at vhost_vdpa_init
Date: Wed, 20 Dec 2023 08:07:45 +0100 [thread overview]
Message-ID: <CAJaqyWdFgqeVBEng_i1FDFr9cg6-s8FCAS77tKRnWz3d02tgLQ@mail.gmail.com> (raw)
In-Reply-To: <CACGkMEtoVLthML2SauX_Ptwdw6KMbtK1EY6BGD=E3mqN01x5hA@mail.gmail.com>
On Wed, Dec 20, 2023 at 5:34 AM Jason Wang <jasowang@redhat.com> wrote:
>
> On Sat, Dec 16, 2023 at 1:28 AM Eugenio Pérez <eperezma@redhat.com> wrote:
> >
> > The backend does not reset them until the vdpa file descriptor is closed
> > so there is no harm in doing it only once.
> >
> > This allows the destination of a live migration to premap memory in
> > batches, using VHOST_BACKEND_F_IOTLB_BATCH.
> >
> > Signed-off-by: Eugenio Pérez <eperezma@redhat.com>
> > ---
> > hw/virtio/vhost-vdpa.c | 50 ++++++++++++++++--------------------------
> > 1 file changed, 19 insertions(+), 31 deletions(-)
> >
> > diff --git a/hw/virtio/vhost-vdpa.c b/hw/virtio/vhost-vdpa.c
> > index 449c3794b2..43f7c382b1 100644
> > --- a/hw/virtio/vhost-vdpa.c
> > +++ b/hw/virtio/vhost-vdpa.c
> > @@ -587,11 +587,25 @@ static int vhost_vdpa_init(struct vhost_dev *dev, void *opaque, Error **errp)
> > struct vhost_vdpa *v = opaque;
> > assert(dev->vhost_ops->backend_type == VHOST_BACKEND_TYPE_VDPA);
> > trace_vhost_vdpa_init(dev, v->shared, opaque);
> > + uint64_t backend_features;
> > + uint64_t qemu_backend_features = 0x1ULL << VHOST_BACKEND_F_IOTLB_MSG_V2 |
> > + 0x1ULL << VHOST_BACKEND_F_IOTLB_BATCH |
> > + 0x1ULL << VHOST_BACKEND_F_IOTLB_ASID |
> > + 0x1ULL << VHOST_BACKEND_F_SUSPEND;
> > int ret;
> >
> > v->dev = dev;
> > dev->opaque = opaque ;
> > v->shared->listener = vhost_vdpa_memory_listener;
> > +
> > + if (vhost_vdpa_call(dev, VHOST_GET_BACKEND_FEATURES, &backend_features)) {
> > + return -EFAULT;
> > + }
> > +
> > + backend_features &= qemu_backend_features;
> > +
> > + dev->backend_cap = backend_features;
> > + v->shared->backend_cap = backend_features;
> > vhost_vdpa_init_svq(dev, v);
> >
> > error_propagate(&dev->migration_blocker, v->migration_blocker);
> > @@ -599,6 +613,11 @@ static int vhost_vdpa_init(struct vhost_dev *dev, void *opaque, Error **errp)
> > return 0;
> > }
> >
> > + ret = vhost_vdpa_call(dev, VHOST_SET_BACKEND_FEATURES, &backend_features);
> > + if (ret) {
> > + return -EFAULT;
> > + }
> > +
> > /*
> > * If dev->shadow_vqs_enabled at initialization that means the device has
> > * been started with x-svq=on, so don't block migration
> > @@ -829,36 +848,6 @@ static int vhost_vdpa_set_features(struct vhost_dev *dev,
> > return vhost_vdpa_add_status(dev, VIRTIO_CONFIG_S_FEATURES_OK);
> > }
> >
> > -static int vhost_vdpa_set_backend_cap(struct vhost_dev *dev)
>
> How about keeping this function but just calling it in vhost_vdpa_init()?
>
Sure, that is possible. I need to remove the VhostOps
vhost_set_backend_cap = vhost_vdpa_set_backend_cap, anyway, is that ok
for you?
Thanks!
next prev parent reply other threads:[~2023-12-20 7:08 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-12-15 17:28 [PATCH for 9.0 00/12] Map memory at destination .load_setup in vDPA-net migration Eugenio Pérez
2023-12-15 17:28 ` [PATCH for 9.0 01/12] vdpa: do not set virtio status bits if unneeded Eugenio Pérez
2023-12-20 4:25 ` Jason Wang
2023-12-15 17:28 ` [PATCH for 9.0 02/12] vdpa: make batch_begin_once early return Eugenio Pérez
2023-12-20 4:27 ` Jason Wang
2023-12-15 17:28 ` [PATCH for 9.0 03/12] vdpa: merge _begin_batch into _batch_begin_once Eugenio Pérez
2023-12-20 4:30 ` Jason Wang
2023-12-15 17:28 ` [PATCH for 9.0 04/12] vdpa: extract out _dma_end_batch from _listener_commit Eugenio Pérez
2023-12-20 4:31 ` Jason Wang
2023-12-15 17:28 ` [PATCH for 9.0 05/12] vdpa: factor out stop path of vhost_vdpa_dev_start Eugenio Pérez
2023-12-20 4:31 ` Jason Wang
2023-12-15 17:28 ` [PATCH for 9.0 06/12] vdpa: check for iova tree initialized at net_client_start Eugenio Pérez
2023-12-15 17:28 ` [PATCH for 9.0 07/12] vdpa: set backend capabilities at vhost_vdpa_init Eugenio Pérez
2023-12-20 4:34 ` Jason Wang
2023-12-20 7:07 ` Eugenio Perez Martin [this message]
2023-12-21 3:39 ` Jason Wang
2023-12-15 17:28 ` [PATCH for 9.0 08/12] vdpa: add vhost_vdpa_load_setup Eugenio Pérez
2023-12-20 5:21 ` Jason Wang
2023-12-20 7:06 ` Eugenio Perez Martin
2023-12-21 2:17 ` Jason Wang
2023-12-21 8:20 ` Eugenio Perez Martin
2024-01-02 5:33 ` Peter Xu
2024-01-02 11:28 ` Eugenio Perez Martin
2024-01-03 6:16 ` Peter Xu
2024-01-03 11:11 ` Eugenio Perez Martin
2024-01-04 6:46 ` Peter Xu
2023-12-15 17:28 ` [PATCH for 9.0 09/12] vdpa: approve switchover after memory map in the migration destination Eugenio Pérez
2023-12-15 17:28 ` [PATCH for 9.0 10/12] vdpa: add vhost_vdpa_net_load_setup NetClient callback Eugenio Pérez
2023-12-15 17:28 ` [PATCH for 9.0 11/12] vdpa: add vhost_vdpa_net_switchover_ack_needed Eugenio Pérez
2023-12-15 17:28 ` [PATCH for 9.0 12/12] virtio_net: register incremental migration handlers Eugenio Pérez
2023-12-25 1:41 ` [PATCH for 9.0 00/12] Map memory at destination .load_setup in vDPA-net migration Lei Yang
2023-12-25 16:30 ` Michael S. Tsirkin
2024-01-02 14:38 ` Eugenio Perez Martin
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=CAJaqyWdFgqeVBEng_i1FDFr9cg6-s8FCAS77tKRnWz3d02tgLQ@mail.gmail.com \
--to=eperezma@redhat.com \
--cc=dtatulea@nvidia.com \
--cc=jasowang@redhat.com \
--cc=leiyang@redhat.com \
--cc=lingshan.zhu@intel.com \
--cc=lvivier@redhat.com \
--cc=mst@redhat.com \
--cc=parav@mellanox.com \
--cc=qemu-devel@nongnu.org \
--cc=sgarzare@redhat.com \
--cc=si-wei.liu@oracle.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 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).