From: Yuanhan Liu <yliu@fridaylinux.org>
To: Maxime Coquelin <maxime.coquelin@redhat.com>
Cc: dev@dpdk.org, tiwei.bie@intel.com, jianfeng.tan@intel.com,
lprosek@redhat.com, lersek@redhat.com
Subject: Re: [PATCH v5 0/4] Vhost: fix mq=on but VIRTIO_NET_F_MQ not negotiated
Date: Mon, 8 Jan 2018 22:36:11 +0800 [thread overview]
Message-ID: <20180108143611.GD29540@yliu-mob> (raw)
In-Reply-To: <20171213085109.9891-1-maxime.coquelin@redhat.com>
On Wed, Dec 13, 2017 at 09:51:05AM +0100, Maxime Coquelin wrote:
> Hi,
>
> This fifth revision fixes bug reported by Tiwei, dev->virtqueue[$idx]
> wasn't reset to NULL at vq freeing time.
Applied to dpdk-next-virtio.
Thanks.
--yliu
>
> Having QEMU started with mq=on but guest driver not negotiating
> VIRTIO_NET_F_MQ feature ends up in the vhost device to never
> start. Indeed, more queues are created in the vhost backend than
> configured.
>
> Guest drivers known to not advertise the VIRTIO_NET_F_MQ feature are
> iPXE and OVMF Virtio-net drivers.
>
> Queues are created because before starting the guest, QEMU sends
> VHOST_USER_SET_VRING_CALL requests for all queues declared in QEMU
> command line. Also, once Virtio features negotiated, QEMU sends
> VHOST_USER_SET_VRING_ENABLE requests to disable all but the first
> queue pair.
>
> This series fixes this by destroying all but first queue pair in
> the backend if VIRTIO_NET_F_MQ isn't negotiated. First patches
> makes sure that VHOST_USER_SET_FEATURES request doesn't change
> Virtio features while the device is running, which should never
> happen as per the Virtio spec. This helps to make sure vitqueues
> aren't destroyed while being processed, but also protect from
> other illegal features changes (e.g. VIRTIO_NET_F_MRG_RXBUF).
>
> Changes since v4:
> =================
> - Fix dev->virtqueue[$ixd] not reset to NULL at VQ free time (Tiwei)
> Changes since v3:
> =================
> - Fix Virtio features = 0 case (Tiwei)
> Changes since v2:
> =================
> - Patch 2: Rework & fix VQs destruction loop (Laszlo)
> Changes since v1:
> =================
> - Patch 1: shift bits in the right direction (Ladi)
>
> Maxime Coquelin (4):
> vhost: prevent features to be changed while device is running
> vhost: propagate VHOST_USER_SET_FEATURES handling error
> vhost: extract virtqueue cleaning and freeing functions
> vhost: destroy unused virtqueues when multiqueue not negotiated
>
> lib/librte_vhost/vhost.c | 22 ++++++++++++----------
> lib/librte_vhost/vhost.h | 3 +++
> lib/librte_vhost/vhost_user.c | 40 ++++++++++++++++++++++++++++++++++++++--
> 3 files changed, 53 insertions(+), 12 deletions(-)
>
> --
> 2.14.3
prev parent reply other threads:[~2018-01-08 14:36 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-12-13 8:51 [PATCH v5 0/4] Vhost: fix mq=on but VIRTIO_NET_F_MQ not negotiated Maxime Coquelin
2017-12-13 8:51 ` [PATCH v5 1/4] vhost: prevent features to be changed while device is running Maxime Coquelin
2017-12-13 8:51 ` [PATCH v5 2/4] vhost: propagate VHOST_USER_SET_FEATURES handling error Maxime Coquelin
2017-12-13 8:51 ` [PATCH v5 3/4] vhost: extract virtqueue cleaning and freeing functions Maxime Coquelin
2017-12-13 8:51 ` [PATCH v5 4/4] vhost: destroy unused virtqueues when multiqueue not negotiated Maxime Coquelin
2017-12-13 9:15 ` [PATCH v5 0/4] Vhost: fix mq=on but VIRTIO_NET_F_MQ " Paolo Bonzini
2017-12-13 10:11 ` Maxime Coquelin
2017-12-13 10:24 ` Paolo Bonzini
2017-12-13 11:23 ` Laszlo Ersek
2018-01-08 14:36 ` Yuanhan Liu [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=20180108143611.GD29540@yliu-mob \
--to=yliu@fridaylinux.org \
--cc=dev@dpdk.org \
--cc=jianfeng.tan@intel.com \
--cc=lersek@redhat.com \
--cc=lprosek@redhat.com \
--cc=maxime.coquelin@redhat.com \
--cc=tiwei.bie@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.