All of lore.kernel.org
 help / color / mirror / Atom feed
From: Eugenio Perez Martin <eperezma@redhat.com>
To: Jason Wang <jasowang@redhat.com>
Cc: qemu-devel@nongnu.org, Zhu Lingshan <lingshan.zhu@intel.com>,
	 Harpreet Singh Anand <hanand@xilinx.com>,
	Stefano Garzarella <sgarzare@redhat.com>,
	 Si-Wei Liu <si-wei.liu@oracle.com>,
	"Michael S. Tsirkin" <mst@redhat.com>, Cindy Lu <lulu@redhat.com>,
	 Laurent Vivier <lvivier@redhat.com>,
	Eli Cohen <eli@mellanox.com>,
	 Liuxiangdong <liuxiangdong5@huawei.com>,
	Parav Pandit <parav@mellanox.com>,
	 Gautam Dawar <gdawar@xilinx.com>
Subject: Re: [RFC PATCH v2 0/8] Guest announce feature emulation using Shadow VirtQueue
Date: Thu, 20 Oct 2022 10:38:15 +0200	[thread overview]
Message-ID: <CAJaqyWf9BZqdfOKjDXeA3AtJQ2vZFaBPaf0UWi7RcHh-uwx7Tw@mail.gmail.com> (raw)
In-Reply-To: <CACGkMEv9EODLU5DdATMW4BEZ5TNTgaDt4Tw+DzXiQAKhFWXsgA@mail.gmail.com>

On Thu, Oct 20, 2022 at 6:24 AM Jason Wang <jasowang@redhat.com> wrote:
>
> On Wed, Oct 19, 2022 at 8:52 PM Eugenio Pérez <eperezma@redhat.com> wrote:
> >
> > A gratuitous ARP is recommended after a live migration to reduce the amount of
> > time needed by the network links to be aware of the new location.
>
> A question: I think we need to deal with the case when GUSET_ANNOUNCE
> is not negotiated? E.d sending the gARP by ourselves via vhost-vDPA?
>

That is possible and I totally agree to implement it on top of this
series, but it complicates the code in two ways:

1. The startup will be slower and more complicated.
We can only send the gARP from qemu using SVQ. At this point SVQ in
dataplane is always enabled as long as cmdline x-svq is on, but in the
final form it will not be the case, and dataplane will be passthrough.

If we want to send gARP from qemu, this will imply to start the device
all in SVQ, and then reset it to its final configuration.

2. Qemu may not know the actual guest state
For example, regarding the mac filtering qemu will simply allow all
unicast if too many macs are configured in the device, not saving them
individually.

However, I think it is better than nothing for the guest that does not
support GUEST_ANNOUNCE so, as said, I'm ok to implement it on top of
this series for sure. But I think other features should have more
priority, isn't it?

Thanks!

> Thanks
>
> > A hypervisor
> > may not have the knowledge of the guest network configuration, and this is
> > especially true on passthrough devices, so its simpler to ask the guest to
> > do it.
> >
> > However, the device control part of this feature can be totally emulated by
> > qemu and shadow virtqueue, not needing any special feature from the actual
> > vdpa device.
> >
> > VIRTIO_NET_F_STATUS is also needed for the guest to access the status of
> > virtio net config where announcement status bit is set. Emulating it as
> > always active in case backend does not support it.
> >
> > v2:
> > * Add VIRTIO_NET_F_STATUS emulation.
> >
> > Eugenio Pérez (8):
> >   vdpa: Delete duplicated vdpa_feature_bits entry
> >   vdpa: Save emulated features list in vhost_vdpa
> >   vhost_net: Emulate link state up if backend doesn't expose it
> >   vdpa: Expose VIRTIO_NET_F_STATUS unconditionally
> >   vdpa: Remove shadow CVQ command check
> >   vdpa: handle VIRTIO_NET_CTRL_ANNOUNCE in
> >     vhost_vdpa_net_handle_ctrl_avail
> >   vhost_net: return VIRTIO_NET_S_ANNOUNCE is device model has it set
> >   vdpa: Offer VIRTIO_NET_F_GUEST_ANNOUNCE feature if SVQ is enabled
> >
> >  include/hw/virtio/vhost-vdpa.h |  2 +
> >  hw/net/vhost_net.c             | 35 +++++++++++++++-
> >  hw/virtio/vhost-vdpa.c         |  8 ++--
> >  net/vhost-vdpa.c               | 74 ++++++++++------------------------
> >  4 files changed, 62 insertions(+), 57 deletions(-)
> >
> > --
> > 2.31.1
> >
> >
>



      reply	other threads:[~2022-10-20  8:41 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-10-19 12:52 [RFC PATCH v2 0/8] Guest announce feature emulation using Shadow VirtQueue Eugenio Pérez
2022-10-19 12:52 ` [RFC PATCH v2 1/8] vdpa: Delete duplicated vdpa_feature_bits entry Eugenio Pérez
2022-10-20  4:12   ` Jason Wang
2022-10-19 12:52 ` [RFC PATCH v2 2/8] vdpa: Save emulated features list in vhost_vdpa Eugenio Pérez
2022-10-20  4:22   ` Jason Wang
2022-10-20  6:34     ` Eugenio Perez Martin
2022-10-21  2:57       ` Jason Wang
2022-10-21  8:56         ` Eugenio Perez Martin
2022-10-24  2:14           ` Jason Wang
2022-10-24  9:25             ` Eugenio Perez Martin
2022-10-25  2:45               ` Jason Wang
2022-10-25  6:54                 ` Eugenio Perez Martin
2022-10-19 12:52 ` [RFC PATCH v2 3/8] vhost_net: Emulate link state up if backend doesn't expose it Eugenio Pérez
2022-10-20  4:29   ` Jason Wang
2022-10-20  6:35     ` Eugenio Perez Martin
2022-10-19 12:52 ` [RFC PATCH v2 4/8] vdpa: Expose VIRTIO_NET_F_STATUS unconditionally Eugenio Pérez
2022-10-19 12:52 ` [RFC PATCH v2 5/8] vdpa: Remove shadow CVQ command check Eugenio Pérez
2022-10-20  4:31   ` Jason Wang
2022-10-19 12:52 ` [RFC PATCH v2 6/8] vdpa: handle VIRTIO_NET_CTRL_ANNOUNCE in vhost_vdpa_net_handle_ctrl_avail Eugenio Pérez
2022-10-20  4:35   ` Jason Wang
2022-10-20  7:00     ` Eugenio Perez Martin
2022-10-21  3:01       ` Jason Wang
2022-10-21  9:05         ` Eugenio Perez Martin
2022-10-24  2:15           ` Jason Wang
2022-10-19 12:52 ` [RFC PATCH v2 7/8] vhost_net: return VIRTIO_NET_S_ANNOUNCE is device model has it set Eugenio Pérez
2022-10-20  4:35   ` Jason Wang
2022-10-19 12:52 ` [RFC PATCH v2 8/8] vdpa: Offer VIRTIO_NET_F_GUEST_ANNOUNCE feature if SVQ is enabled Eugenio Pérez
2022-10-20  4:24 ` [RFC PATCH v2 0/8] Guest announce feature emulation using Shadow VirtQueue Jason Wang
2022-10-20  8:38   ` Eugenio Perez Martin [this message]

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=CAJaqyWf9BZqdfOKjDXeA3AtJQ2vZFaBPaf0UWi7RcHh-uwx7Tw@mail.gmail.com \
    --to=eperezma@redhat.com \
    --cc=eli@mellanox.com \
    --cc=gdawar@xilinx.com \
    --cc=hanand@xilinx.com \
    --cc=jasowang@redhat.com \
    --cc=lingshan.zhu@intel.com \
    --cc=liuxiangdong5@huawei.com \
    --cc=lulu@redhat.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 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.