From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:60813) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Z2rj5-0007T7-JJ for qemu-devel@nongnu.org; Wed, 10 Jun 2015 21:56:17 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Z2rj2-0003uQ-5Y for qemu-devel@nongnu.org; Wed, 10 Jun 2015 21:56:15 -0400 Received: from mail-pa0-f53.google.com ([209.85.220.53]:34936) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Z2rj1-0003sL-TX for qemu-devel@nongnu.org; Wed, 10 Jun 2015 21:56:12 -0400 Received: by pacyx8 with SMTP id yx8so44512046pac.2 for ; Wed, 10 Jun 2015 18:56:10 -0700 (PDT) Message-ID: <5578EAB6.9070409@igel.co.jp> Date: Thu, 11 Jun 2015 10:56:06 +0900 From: Tetsuya Mukawa MIME-Version: 1.0 References: <1432538908-26298-5-git-send-email-mukawa@igel.co.jp> <1432874550-10921-1-git-send-email-mukawa@igel.co.jp> In-Reply-To: <1432874550-10921-1-git-send-email-mukawa@igel.co.jp> Content-Type: text/plain; charset=iso-2022-jp Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH v1 0/4] Add feature to start QEMU without vhost-user backend List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org, eblake@redhat.com Cc: jasowang@redhat.com, n.nikolaev@virtualopensystems.com, stefanha@redhat.com On 2015/05/29 13:42, Tetsuya Mukawa wrote: > Hi guys, > > Here are patches to add feature to start QEMU without vhost-user backend. > Currently, if we want to use vhost-user backend, the backend must start before > QEMU. Also, if QEMU or the backend is closed unexpectedly, there is no way to > recover without restarting both applications. Practically, it's not useful. > > This patch series adds following features. > - QEMU can start before the backend. > - QEMU or the backend can restart anytime. > connectivity will be recovered automatically, when app starts again. > (if QEMU is server, QEMU just wait reconnection) > while lost connection, link status of virtio-net device is down, > so virtio-net driver on the guest can know it > > To work like above, the patch introduces flags to specify features vhost-user > backend will support. > > Here are examples. > ('backend_mrg_rxbuf' is an one of new flags. To know all, check the last patch) > > * QEMU is configured as vhost-user client. > -chardev socket,id=chr0,path=/tmp/sock,reconnect=3 \ > -netdev vhost-user,id=net0,chardev=chr0,vhostforce,backend_mrg_rxbuf \ > -device virtio-net-pci,netdev=net0 \ > > * QEMU is configured as vhost-user server. > -chardev socket,id=chr0,path=/tmp/sock,server,nowait \ > -netdev vhost-user,id=net0,chardev=chr0,vhostforce,backend_mrg_rxbuf \ > -device virtio-net-pci,netdev=net0 \ > > When virtio-net device is configured by virtio-net driver, QEMU should know > vhost-user backend features. But if QEMU starts without the backend, QEMU cannot > know it. So above the feature values specified by user will be used as features > the backend will support. > > When connection between QEMU and the backend is established, QEMU checkes feature > values of the backend to make sure the expected features are provided. > If it doesn't, the connection will be closed by QEMU. > > Regards, > Tetsuya > > ---------- > Changes > ---------- > - Changes from RFC patch > The last patch of this series was changed like below. > - Rebase to latest master. > - Remove needless has_backend_feature variable. > - Change user interface to be able to specify each feature by name. > - Add (Since 2.4) to schema file. > - Fix commit title and body. > > > Tetsuya Mukawa (4): > vhost-user: Add ability to know vhost-user backend disconnection > vhost-user: Shutdown vhost-user connection when wrong messages are > passed > vhost-user: Enable 'nowait' and 'reconnect' option > vhost-user: Add new option to specify vhost-user backend features > > hw/net/vhost_net.c | 6 ++- > hw/net/virtio-net.c | 13 +++++ > hw/scsi/vhost-scsi.c | 2 +- > hw/virtio/vhost-user.c | 24 ++++++--- > hw/virtio/vhost.c | 7 ++- > include/hw/virtio/vhost.h | 3 +- > include/hw/virtio/virtio-net.h | 1 + > include/net/net.h | 3 ++ > include/net/vhost_net.h | 1 + > include/sysemu/char.h | 7 +++ > net/net.c | 9 ++++ > net/tap.c | 1 + > net/vhost-user.c | 69 ++++++++++++++++++++++++- > qapi-schema.json | 114 +++++++++++++++++++++++++++++++++++------ > qemu-char.c | 15 ++++++ > qemu-options.hx | 10 ++++ > 16 files changed, 256 insertions(+), 29 deletions(-) > Ping. Could someone please review this patches? http://patchwork.ozlabs.org/project/qemu-devel/list/?submitter=66139 Regards, Tetsuya