[libvirt] [PATCH 0/4] support for QEMU vhost-user

Michele Paolino m.paolino at virtualopensystems.com
Wed Jul 2 13:20:14 UTC 2014


This series adds support for the QEMU vhost-user feature to libvirt.
vhost-user enables the communication between a QEMU virtual machine
and other userspace process using the Virtio transport protocol.
It uses a char dev (e.g. Unix socket) for the control plane,
while the data plane based on shared memory.

The XML looks like:

   <interface type='vhostuser'>
      <source type='unix' path='/tmp/vhost.sock' mode='server'/>
      <mac address='52:54:00:3b:83:1a'/>
      <model type='virtio'/>
   </interface>

Our use case is the deployment of Snabbswitch in an OpenStack/NFV
environment. Snabbswitch uses a Unix socket to implement the
vhost-user control plane, thus we focused on the support for the
type=unix attribute of the <source> element.
To test it with Snabbswitch, it is necessary to apply the
following patches (respectively from Chen Fan and Michele Paolino):
http://www.redhat.com/archives/libvir-list/2014-June/msg01195.html
http://www.redhat.com/archives/libvir-list/2014-June/msg01418.html

It is also possible to directly checkout the Virtual Open Systems'
libvirt repository(branch "vhost-user_support) at the address:
https://github.com/virtualopensystems/libvirt.

This patch is based on the previous work from Luke Gorrie:
http://www.redhat.com/archives/libvir-list/2014-May/msg00934.html

Michele Paolino (4):
  vhost-user support: domain configuration
  vhost-user support: qemu command-line
  vhost-user support: tests and docs
  vhost-user support: lxc,xenxs,uml

 docs/formatdomain.html.in                          | 34 +++++++++
 docs/schemas/domaincommon.rng                      | 39 +++++++++++
 src/conf/domain_conf.c                             | 81 ++++++++++++++++++++++
 src/conf/domain_conf.h                             | 10 ++-
 src/lxc/lxc_process.c                              |  1 +
 src/qemu/qemu_command.c                            | 58 ++++++++++++++++
 src/uml/uml_conf.c                                 |  5 ++
 src/xenxs/xen_sxpr.c                               |  1 +
 .../qemuxml2argv-net-vhostuser.args                |  7 ++
 .../qemuxml2argv-net-vhostuser.xml                 | 33 +++++++++
 tests/qemuxml2argvtest.c                           |  1 +
 tests/qemuxml2xmltest.c                            |  1 +
 12 files changed, 269 insertions(+), 2 deletions(-)
 create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-net-vhostuser.args
 create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-net-vhostuser.xml

-- 
1.9.3




More information about the libvir-list mailing list