The following patches are an implementation of
a new shmem device to support ivshmem in libvirt.
Any feedback is welcome.
Changes since RFC:
- replace <ivshmem> by a more generic term <shmem>
- remove role attribute
- libvirt is able to start and stop an ivshmem server
- update xml format from:
<ivshmem use_server='yes' role='master'>
<source file='/tmp/socket-ivshmem0'/>
<size unit='M'>32</size>
<msi vectors='32' ioeventfd='on'/>
</ivshmem>
to:
<shmem name='shmem0' model='ivshmem'>
<server path='/tmp/sockect-ivshem0' start='yes'/>
<size unit='M'>32</size>
<msi vectors='32' ioeventfd='on'/>
</shmem>
Maxime Leroy (6):
doc: schema: Add documentation for the shmem support
conf: Parse and format shmem device XML
qemu: Add cap flag QEMU_CAPS_IVSHMEM
qemu: Build command line for ivshmem device
tests: Add tests for ivshmem device handling
ivshmem: add start param to server attribute
configure.ac | 4 +
docs/formatdomain.html.in | 71 ++++++
docs/schemas/domaincommon.rng | 52 +++++
po/POTFILES.in | 1 +
src/Makefile.am | 1 +
src/conf/domain_conf.c | 264 ++++++++++++++++++++++-
src/conf/domain_conf.h | 42 ++++
src/libvirt_private.syms | 7 +
src/qemu/qemu_capabilities.c | 3 +
src/qemu/qemu_capabilities.h | 1 +
src/qemu/qemu_command.c | 112 +++++++++-
src/qemu/qemu_command.h | 4 +
src/qemu/qemu_hotplug.c | 1 +
src/qemu/qemu_process.c | 10 +
src/util/virivshmemserver.c | 141 ++++++++++++
src/util/virivshmemserver.h | 28 +++
tests/qemucapabilitiesdata/caps_1.2.2-1.caps | 1 +
tests/qemucapabilitiesdata/caps_1.3.1-1.caps | 1 +
tests/qemucapabilitiesdata/caps_1.4.2-1.caps | 1 +
tests/qemucapabilitiesdata/caps_1.5.3-1.caps | 1 +
tests/qemucapabilitiesdata/caps_1.6.0-1.caps | 1 +
tests/qemucapabilitiesdata/caps_1.6.50-1.caps | 1 +
tests/qemuhelptest.c | 17 +-
tests/qemuxml2argvdata/qemuxml2argv-ivshmem.args | 10 +
tests/qemuxml2argvdata/qemuxml2argv-ivshmem.xml | 35 +++
tests/qemuxml2argvtest.c | 3 +
tests/qemuxml2xmltest.c | 2 +
27 files changed, 808 insertions(+), 7 deletions(-)
create mode 100644 src/util/virivshmemserver.c
create mode 100644 src/util/virivshmemserver.h
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-ivshmem.args
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-ivshmem.xml
--
1.9.3