qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Yuanhan Liu <yuanhan.liu@linux.intel.com>
To: qemu-devel@nongnu.org
Cc: Yuanhan Liu <yuanhan.liu@linux.intel.com>, mst@redhat.com
Subject: [Qemu-devel] [PATCH v4 0/5] handle vhost reset/start/stop correctly
Date: Wed, 11 Nov 2015 21:24:36 +0800	[thread overview]
Message-ID: <1447248281-15227-1-git-send-email-yuanhan.liu@linux.intel.com> (raw)


Patch 1 rename RESET_DEVICE back to RESET_OWNER

Patch 2 introduced a new function: vhost_net_reset(), which is invoked
        when reset happens, say, driver is unloaded (unbinded).

        Michael suggested to do that only when MQ is not negotiated.
        However, reset happens no matter MQ is enabled or negotiated
        or not, and we should give a sign to backend to reset some
        device to a proper state after it happens.

        Note that the message sent is still RESET_OWNER. It might not
        be a good idea, but we could not simply rename it to RESET_DEVICE,
        and maybe adding another RESET_DEVICE might be better.

Patch 3 and 4 send SET_PROTOCOL_FEATURES at start, just like we send
        SET_FEATURES.

Patch 5 send SET_VRING_ENABLE at start/stop

        Michael, I intended to send it when MQ is negotiated as you suggested,
        however, I found that VHOST_USER_PROTOCOL_F_MQ is defined in vhost-user.c,
        which is not accessible to vhost.c.

        Exporting it to vhost.h will resolve that, however, it's not a good
        idea to move vhost user specific stuff to there. We could also introduce
        another vhost callback to test whether MQ is negotiated: I just don't
        think it's worthy.

        Hence, here I just used a simple test: invoke set_vring_enable() just
        when it is defined. Judging the callback self has another MQ check,
        I guess it's okay.

And sorry that it took so long to send this version.

---
Yuanhan Liu (5):
  vhost: rename RESET_DEVICE backto RESET_OWNER
  vhost: reset vhost net when virtio_net_reset happens
  vhost: introduce vhost_set/get_protocol_features callbacks
  vhost: send SET_PROTOCOL_FEATURES at start
  vhost: send SET_VRING_ENABLE at start/stop

 docs/specs/vhost-user.txt         |  4 ++--
 hw/net/vhost_net.c                | 20 ++++++++++++++------
 hw/net/virtio-net.c               | 14 ++++++++++++++
 hw/virtio/vhost-backend.c         |  2 +-
 hw/virtio/vhost-user.c            | 13 ++++++++++---
 hw/virtio/vhost.c                 | 17 +++++++++++++++++
 include/hw/virtio/vhost-backend.h |  6 ++++++
 include/net/vhost_net.h           |  1 +
 linux-headers/linux/vhost.h       |  2 +-
 tests/vhost-user-bridge.c         |  6 +++---
 tests/vhost-user-test.c           |  4 ++--
 11 files changed, 71 insertions(+), 18 deletions(-)

-- 
1.9.0

             reply	other threads:[~2015-11-11 13:20 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-11-11 13:24 Yuanhan Liu [this message]
2015-11-11 13:24 ` [Qemu-devel] [PATCH v4 1/5] vhost: rename RESET_DEVICE backto RESET_OWNER Yuanhan Liu
2015-11-11 13:24 ` [Qemu-devel] [PATCH v4 2/5] vhost: reset vhost net when virtio_net_reset happens Yuanhan Liu
2015-11-12 13:23   ` Michael S. Tsirkin
2015-11-11 13:24 ` [Qemu-devel] [PATCH v4 3/5] vhost: introduce vhost_set/get_protocol_features callbacks Yuanhan Liu
2015-11-11 13:24 ` [Qemu-devel] [PATCH v4 4/5] vhost: send SET_PROTOCOL_FEATURES at start Yuanhan Liu
2015-11-11 13:24 ` [Qemu-devel] [PATCH v4 5/5] vhost: send SET_VRING_ENABLE at start/stop Yuanhan Liu
2015-11-12 13:33 ` [Qemu-devel] [PATCH v4 0/5] handle vhost reset/start/stop correctly Michael S. Tsirkin
2015-11-12 14:08   ` Yuanhan Liu
2015-11-12 14:44     ` Michael S. Tsirkin
2015-11-13  2:03       ` Yuanhan Liu
2015-11-13 10:24         ` Michael S. Tsirkin
2015-11-13 15:42           ` Yuanhan Liu

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=1447248281-15227-1-git-send-email-yuanhan.liu@linux.intel.com \
    --to=yuanhan.liu@linux.intel.com \
    --cc=mst@redhat.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 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).