From: Fam Zheng <famz@redhat.com>
To: "Michael S. Tsirkin" <mst@redhat.com>
Cc: qemu-devel@nongnu.org, Peter Maydell <peter.maydell@linaro.org>,
Prerna Saxena <prerna.saxena@nutanix.com>
Subject: Re: [Qemu-devel] [PULL 3/3] vhost-user: Attempt to fix a race with set_mem_table.
Date: Fri, 12 Aug 2016 14:38:28 +0800 [thread overview]
Message-ID: <20160812063828.GG2759@al.usersys.redhat.com> (raw)
In-Reply-To: <1470842980-32481-4-git-send-email-mst@redhat.com>
On Wed, 08/10 18:30, Michael S. Tsirkin wrote:
> From: Prerna Saxena <prerna.saxena@nutanix.com>
>
> The set_mem_table command currently does not seek a reply. Hence, there is
> no easy way for a remote application to notify to QEMU when it finished
> setting up memory, or if there were errors doing so.
>
> As an example:
> (1) Qemu sends a SET_MEM_TABLE to the backend (eg, a vhost-user net
> application). SET_MEM_TABLE does not require a reply according to the spec.
> (2) Qemu commits the memory to the guest.
> (3) Guest issues an I/O operation over a new memory region which was configured on (1).
> (4) The application has not yet remapped the memory, but it sees the I/O request.
> (5) The application cannot satisfy the request because it does not know about those GPAs.
>
> While a guaranteed fix would require a protocol extension (committed separately),
> a best-effort workaround for existing applications is to send a GET_FEATURES
> message before completing the vhost_user_set_mem_table() call.
> Since GET_FEATURES requires a reply, an application that processes vhost-user
> messages synchronously would probably have completed the SET_MEM_TABLE before replying.
>
> Signed-off-by: Prerna Saxena <prerna.saxena@nutanix.com>
> Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Sporadic hangs are seen with test-vhost-user after this patch:
https://travis-ci.org/qemu/qemu/builds
Reverting seems to fix it for me.
Is this a known problem?
Fam
next prev parent reply other threads:[~2016-08-12 6:45 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-08-10 15:30 [Qemu-devel] [PULL 0/3] virtio/vhost: fixes Michael S. Tsirkin
2016-08-10 15:30 ` [Qemu-devel] [PULL 1/3] vhost: check for vhost_ops before using Michael S. Tsirkin
2016-08-10 15:30 ` [Qemu-devel] [PULL 2/3] vhost-user: Introduce a new protocol feature REPLY_ACK Michael S. Tsirkin
2016-08-10 15:30 ` [Qemu-devel] [PULL 3/3] vhost-user: Attempt to fix a race with set_mem_table Michael S. Tsirkin
2016-08-12 6:38 ` Fam Zheng [this message]
2016-08-12 7:16 ` Prerna Saxena
2016-08-12 7:20 ` Marc-André Lureau
2016-08-12 12:01 ` Peter Maydell
2016-08-12 15:49 ` Michael S. Tsirkin
2016-08-15 10:20 ` Peter Maydell
2016-08-12 15:47 ` Michael S. Tsirkin
2016-08-12 15:54 ` Marc-André Lureau
2016-08-12 21:12 ` Michael S. Tsirkin
2016-08-13 6:13 ` Marc-André Lureau
2016-08-14 2:30 ` Michael S. Tsirkin
2016-08-14 2:44 ` Michael S. Tsirkin
2016-08-14 2:51 ` Michael S. Tsirkin
2016-08-14 9:42 ` Prerna Saxena
2016-08-14 21:39 ` Michael S. Tsirkin
2016-08-31 11:19 ` Maxime Coquelin
2016-09-01 13:46 ` Michael S. Tsirkin
2016-09-02 8:57 ` Maxime Coquelin
2016-09-02 17:29 ` Michael S. Tsirkin
2016-09-05 13:06 ` Maxime Coquelin
2016-09-06 2:22 ` Michael S. Tsirkin
2016-08-10 17:32 ` [Qemu-devel] [PULL 0/3] virtio/vhost: fixes Peter Maydell
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=20160812063828.GG2759@al.usersys.redhat.com \
--to=famz@redhat.com \
--cc=mst@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=prerna.saxena@nutanix.com \
--cc=qemu-devel@nongnu.org \
/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.