[libvirt PATCH v2 0/6] <interface> <teaming> element (was: virtio failover / vfio auto-plug-on-migrate)
by Laine Stump
V1: https://www.redhat.com/archives/libvir-list/2020-January/msg00813.html
This all used different names in V1 - in that incarnation the
configuration was done using "failover" and "backupAlias" attributes
added to the <driver> subelement of <interface>. But the resulting
code was cumbersome and had little bits scattered all over the place
due to needing it in both hostdev and interface parsing/formatting.
In his review of V1, danpb suggesting just adding a new subelement for
this configuration to free ourselves from the constraints of <driver>
parsing/formatting. This ended up dramatically simplifying the code
(hence the lack of V1's refactoring patches in V2, and a decrease in
patch count from 12 to 6).
During further discussion in email and on IRC, we decided that naming
the element <failover> was too limiting, as it implied the behavior of
what is, to libvirt, just two network devices that should be
teamed/bonded together - it's completely up to the hypervisor and
guest what is done with this information. In light of that, we decided
to name the new subelement <teaming>, and to specify the two
interfaces as "persistent" (an interface that will always remain
plugged in) and "transient" (an interface that may be periodically
unplugged (during migration, in the case of QEMU). So the virtio
device will have
<teaming type='persistent'/>
and the hostdev device will have
<teaming type='transient' persistent='ua-myvirtio'/>
(note that the persistent interface must have <alias name='ua-myvirtio'/>)
Given this config, libvirt will add "failover=on" to the device
commandline arg for the virtio device, and
"failover_pair_id=ua-myvirtio" to the arg for the hostdev device (and
when a migration is requested, it will notice if there is a hostdev
that has <teaming type='transient'/> set, and will allow the migration
in this case, but still disallow migrations of domains with normal
hostdevs).
In response to these extra commandline options, QEMU will set some
extra capabilities in the virtio device PCI capabilities data, and
will also automatically unplug/re-plug the hostdev device before and
after migration.
In the guest, the virtio-net driver will notice the extra PCI
capabilities and use this as a clue that it should search for another
device with matching MAC address (NB: the guest driver requires the
two devices to have matching MAC addresses) to join into a bond with
the virtio-net device. This bond is hard-wired to always prefer the
hostdev device whenever it is present, and use the virtio device as
backup when the hostdev is unplugged.
----
As mentioned in a followup to the V1 cover letter, there is a
regression in QEMU 4.2.0 that causes QEMU to segv when a hostdev is
unplugged. That bug is fixed with this upstream QEMU patch:
https://git.qemu.org/?p=qemu.git;a=commitdiff;h=0446f8121723b134ca1d1ed0b...
Be sure to use a qemu build with this patch applied, or you may not
even be able to start the guest! Also we've found that the
DEVICE_DELETED event is never sent to libvirt when one of these
hostdevs is manually unplugged, meaning that libvirt keeps the device marked as
"in-use", and it therefore cannot be re-plugged to the guest until
after a complete guest "power cycle". AFAIK there isn't yet a fix for
that bug, so don't expect manual unplug of the device to work.
Laine Stump (6):
qemu: add capabilities flag for failover feature
conf: parse/format <teaming> subelement of <interface>
qemu: support interface <teaming> functionality
qemu: allow migration with assigned PCI hostdev if <teaming> is set
qemu: add wait-unplug to qemu migration status enum
docs: document <interface> subelement <teaming>
docs/formatdomain.html.in | 100 ++++++++++++++++++
docs/news.xml | 28 +++++
docs/schemas/domaincommon.rng | 19 ++++
src/conf/domain_conf.c | 45 ++++++++
src/conf/domain_conf.h | 14 +++
src/qemu/qemu_capabilities.c | 4 +
src/qemu/qemu_capabilities.h | 3 +
src/qemu/qemu_command.c | 9 ++
src/qemu/qemu_domain.c | 36 ++++++-
src/qemu/qemu_migration.c | 53 +++++++++-
src/qemu/qemu_monitor.c | 1 +
src/qemu/qemu_monitor.h | 1 +
src/qemu/qemu_monitor_json.c | 1 +
.../caps_4.2.0.aarch64.xml | 1 +
.../caps_4.2.0.x86_64.xml | 1 +
.../net-virtio-teaming-network.xml | 37 +++++++
.../qemuxml2argvdata/net-virtio-teaming.args | 40 +++++++
tests/qemuxml2argvdata/net-virtio-teaming.xml | 50 +++++++++
tests/qemuxml2argvtest.c | 4 +
.../net-virtio-teaming-network.xml | 51 +++++++++
.../qemuxml2xmloutdata/net-virtio-teaming.xml | 66 ++++++++++++
tests/qemuxml2xmltest.c | 6 ++
22 files changed, 563 insertions(+), 7 deletions(-)
create mode 100644 tests/qemuxml2argvdata/net-virtio-teaming-network.xml
create mode 100644 tests/qemuxml2argvdata/net-virtio-teaming.args
create mode 100644 tests/qemuxml2argvdata/net-virtio-teaming.xml
create mode 100644 tests/qemuxml2xmloutdata/net-virtio-teaming-network.xml
create mode 100644 tests/qemuxml2xmloutdata/net-virtio-teaming.xml
--
2.24.1
4 years, 10 months
[PATCH v2 0/9] virsh: secret: Improve handling of secret value
by Peter Krempa
Improve handling of secrets for security.
'secret-passwd' command was dropped in favor of '--interactive' and few
other changes requested at review.
Peter Krempa (9):
virsh: Work around virSecretFree quirks
virsh: secret: Refactor cleanup in cmdSecretSetValue
virsh: secret: Refactor cleanup in cmdSecretGetValue
virsh: secret: Add --plain flag for secret-get-value
virsh: secret: Add --file 'filename' support for secret-set-value
virsh: secret: Print warning that passing secret on command-line is
insecure
virsh: secret: Add --plain switch for secret-set-value
tools: virsh: Add --interactive flag for secret-set-value command
docs: secret: Unify and sanitize examples on how to set secret value
build-aux/syntax-check.mk | 2 +-
docs/formatsecret.html.in | 88 +++++++++++++--------
docs/manpages/virsh.rst | 20 ++++-
tools/virsh-completer-secret.c | 3 +-
tools/virsh-secret.c | 140 ++++++++++++++++++++++++---------
tools/virsh-util.c | 11 +++
tools/virsh-util.h | 5 ++
7 files changed, 195 insertions(+), 74 deletions(-)
--
2.24.1
4 years, 10 months
[libvirt] [RFC PATCH 00/16] qemu: checkpoint: Add support for deleting checkpoints accross snapshots
by Peter Krempa
Posted as RFC because qemu probably doesn't reopen backing images for
bitmap operations resulting in:
$ virsh checkpoint-delete vm --checkpointname a
error: Failed to delete checkpoint a
error: internal error: unable to execute QEMU command 'transaction': Bitmap 'a' is readonly and cannot be modified
Unfortunately this can't be done manually because 'blockdev-reopen' is
still experimental.
Peter Krempa (16):
qemu: checkpoint: Store whether deleted checkpoint is current in a
variable
qemu: checkpoint: split out checkpoint deletion bitmaps
qemu: checkpoint: rename disk->chkdisk in qemuCheckpointDiscardBitmaps
qemu: checkpoint: rename disk->chkdisk in qemuCheckpointAddActions
qemu: checkpoint: Use disk definition directly when creating
checkpoint
qemu: checkpoint: tolerate missing disks on checkpoint deletion
qemu: domain: Remove unused qemuDomainDiskNodeFormatLookup
qemu: checkpoint: Introduce helper to find checkpoint disk definition
in parents
qemu: checkpoint: Extract calculation of bitmap merging for checkpoint
deletion
tests: qemublock: Add test for checkpoint deletion bitmap merge
tests: qemublock: Add few more test cases for checkpoint deletion
tests: qemublock: Add synthetic snapshot+checkpoint test data
qemu: checkpoint: Introduce support for deleting checkpoints accross
snapshots
tests: qemublock: Add checkpoint deletion test for deep backing chain
tests: qemublock: Add checkpoint deletion tests for some special cases
qemu: checkpoint: Track and relabel images for bitmap merging
src/qemu/qemu_checkpoint.c | 329 +++++--
src/qemu/qemu_checkpoint.h | 9 +
src/qemu/qemu_domain.c | 14 -
src/qemu/qemu_domain.h | 3 -
tests/qemublocktest.c | 102 +++
.../snapshots-synthetic-checkpoint.json | 827 ++++++++++++++++++
.../bitmap/snapshots-synthetic-checkpoint.out | 13 +
.../checkpointdelete/basic-current-out.json | 29 +
.../basic-intermediate1-out.json | 22 +
.../basic-intermediate2-out.json | 22 +
.../basic-intermediate3-out.json | 22 +
.../checkpointdelete/basic-noparent-out.json | 9 +
.../snapshots-current-out.json | 29 +
.../snapshots-intermediate1-out.json | 24 +
.../snapshots-intermediate2-out.json | 62 ++
.../snapshots-intermediate3-out.json | 61 ++
.../snapshots-noparent-out.json | 27 +
...hots-synthetic-checkpoint-current-out.json | 29 +
...ynthetic-checkpoint-intermediate1-out.json | 31 +
...ynthetic-checkpoint-intermediate2-out.json | 34 +
...ynthetic-checkpoint-intermediate3-out.json | 61 ++
...ots-synthetic-checkpoint-noparent-out.json | 27 +
22 files changed, 1680 insertions(+), 106 deletions(-)
create mode 100644 tests/qemublocktestdata/bitmap/snapshots-synthetic-checkpoint.json
create mode 100644 tests/qemublocktestdata/bitmap/snapshots-synthetic-checkpoint.out
create mode 100644 tests/qemublocktestdata/checkpointdelete/basic-current-out.json
create mode 100644 tests/qemublocktestdata/checkpointdelete/basic-intermediate1-out.json
create mode 100644 tests/qemublocktestdata/checkpointdelete/basic-intermediate2-out.json
create mode 100644 tests/qemublocktestdata/checkpointdelete/basic-intermediate3-out.json
create mode 100644 tests/qemublocktestdata/checkpointdelete/basic-noparent-out.json
create mode 100644 tests/qemublocktestdata/checkpointdelete/snapshots-current-out.json
create mode 100644 tests/qemublocktestdata/checkpointdelete/snapshots-intermediate1-out.json
create mode 100644 tests/qemublocktestdata/checkpointdelete/snapshots-intermediate2-out.json
create mode 100644 tests/qemublocktestdata/checkpointdelete/snapshots-intermediate3-out.json
create mode 100644 tests/qemublocktestdata/checkpointdelete/snapshots-noparent-out.json
create mode 100644 tests/qemublocktestdata/checkpointdelete/snapshots-synthetic-checkpoint-current-out.json
create mode 100644 tests/qemublocktestdata/checkpointdelete/snapshots-synthetic-checkpoint-intermediate1-out.json
create mode 100644 tests/qemublocktestdata/checkpointdelete/snapshots-synthetic-checkpoint-intermediate2-out.json
create mode 100644 tests/qemublocktestdata/checkpointdelete/snapshots-synthetic-checkpoint-intermediate3-out.json
create mode 100644 tests/qemublocktestdata/checkpointdelete/snapshots-synthetic-checkpoint-noparent-out.json
--
2.24.1
4 years, 10 months
[libvirt PATCH 00/32] the gnulib saga: revenge of the gnus
by Daniel P. Berrangé
We currently have 25 gnulib modules in bootstrap.conf
and after this series we're down to 7. Except this is
a lie, because we've been failing to count the indirect
dependencies, so after this series, libvirt is actually
pulling in 41 modules. Still, that's better than the
115 modules we indirectly use before this series :-)
I have actually eliminated the remaining modules too,
but I'm having trouble with the event loop impl in
the RPC client on Windows that I'm still debugging.
I'll poist the remaining patches once I've figured
out that problem.
Daniel P. Berrangé (32):
tests: stop setting $SHELL env variable
util: add a virArchFromHost() impl for Windows
util: add API for reading password from the console
src: remove usage of strchrnul function
build: generate configmake.h in root directory
util: use getgrouplist() directly instead of mgetgroups
tools: replace wcwidth() with g_unichar_* APIs
src: remove unused sys/utsname.h includes
util: explicitly include windows.h
storage: remove use of stat-time.h headers
src: implement APIs for passing FDs over UNIX sockets
rpc: conditionalize signal handling
src: only import sys/uio.h when journald is built
src: replace mkdir() with g_mkdir()
m4: disable polkit build on Windows
util: conditionalize more of virCommand on WIN32
src: remove all traces of Cygwin support
util: conditionalize virProcess APIs on Windows
src: conditionalize use of net/if.h
configure: add check for sys/ioctl.h
src: conditionalize use of S_ISSOCK macro
configure: request system specific extensions
src: stop using O_DIRECTORY in resctrl
src: ensure O_CLOEXEC is defined on Windows
src: conditionalize use of F_DUPFD_CLOEXEC
src: conditionalize use of O_DIRECT
src: conditionalize use of O_BINARY
src: conditionalize use of chown & stat constants
src: convert all code to use virsocket.h
tests: conditionalize use of SIGPIPE
src: conditionalize EAI_ADDRFAMILY
bootstrap: remove 18 more gnulib modules
Makefile.am | 44 ++++++++
bootstrap.conf | 36 ------
build-aux/syntax-check.mk | 2 +-
configure.ac | 35 +++---
m4/virt-compile-pie.m4 | 2 +-
m4/virt-polkit.m4 | 4 +
m4/virt-win-common.m4 | 8 +-
m4/virt-win-cygwin.m4 | 32 ------
m4/virt-win-symbols.m4 | 4 +-
m4/virt-win-windres.m4 | 4 +-
m4/virt-xdr.m4 | 9 +-
po/POTFILES.in | 1 -
src/Makefile.am | 8 +-
src/admin/Makefile.inc.am | 1 -
src/conf/network_conf.c | 2 -
src/esx/esx_util.c | 3 +-
src/esx/esx_util.h | 1 -
src/internal.h | 10 ++
src/libvirt-domain.c | 2 +
src/libvirt.c | 9 +-
src/libvirt_private.syms | 6 +
src/libxl/libxl_conf.c | 2 -
src/locking/Makefile.inc.am | 1 -
src/logging/Makefile.inc.am | 1 -
src/lxc/lxc_controller.c | 4 +-
src/lxc/lxc_driver.c | 4 +-
src/nwfilter/nwfilter_dhcpsnoop.c | 3 -
src/nwfilter/nwfilter_learnipaddr.c | 4 +-
src/openvz/openvz_conf.c | 4 +-
src/qemu/qemu_agent.c | 4 +-
src/qemu/qemu_conf.c | 3 +-
src/qemu/qemu_driver.c | 3 +-
src/qemu/qemu_interface.c | 4 +-
src/qemu/qemu_migration.c | 3 +-
src/qemu/qemu_monitor.c | 3 +-
src/qemu/qemu_monitor_json.c | 4 +-
src/remote/qemu_protocol.x | 1 -
src/remote/remote_protocol.x | 2 +-
src/rpc/Makefile.inc.am | 3 -
src/rpc/genprotocol.pl | 2 +-
src/rpc/virnetclient.c | 33 ++++--
src/rpc/virnetdaemon.c | 35 +++++-
src/rpc/virnetdaemon.h | 4 +
src/rpc/virnetprotocol.x | 2 +-
src/rpc/virnetsocket.c | 42 ++++---
src/security/security_dac.c | 4 +
src/security/security_manager.c | 2 +
src/security/security_selinux.c | 16 +--
src/storage/storage_util.c | 24 +++-
src/util/virarch.c | 52 ++++++++-
src/util/virarptable.c | 1 -
src/util/vircgroup.c | 10 +-
src/util/vircommand.c | 165 +++++++++++++++++-----------
src/util/virdnsmasq.c | 9 +-
src/util/virfdstream.c | 13 +--
src/util/virfile.c | 58 ++++++++--
src/util/virhostcpu.c | 1 -
src/util/virhostmem.c | 1 -
src/util/virlog.c | 8 +-
src/util/virnetdev.c | 1 -
src/util/virnetdev.h | 4 +-
src/util/virnetdevbridge.c | 8 +-
src/util/virnetdevip.c | 4 +-
src/util/virnetdevmacvlan.c | 3 +-
src/util/virnetdevtap.c | 4 +-
src/util/virnetdevvportprofile.c | 3 +-
src/util/virnetlink.c | 3 +-
src/util/virprocess.c | 103 +++++++++++++----
src/util/virresctrl.c | 2 +-
src/util/virsocket.c | 142 +++++++++++++++++++++++-
src/util/virsocket.h | 6 +-
src/util/virsocketaddr.c | 2 -
src/util/virsocketaddr.h | 20 +---
src/util/virsysinfo.c | 14 ++-
src/util/virsystemd.c | 9 +-
src/util/virutil.c | 76 +++++++++----
src/util/virutil.h | 2 +
src/util/virxdrdefs.h | 12 +-
src/vbox/vbox_MSCOMGlue.c | 6 +-
tests/Makefile.am | 3 -
tests/libxlmock.c | 2 +-
tests/nsstest.c | 3 +-
tests/testutils.c | 2 +-
tests/virauthconfigtest.c | 2 +
tests/virkeyfiletest.c | 2 +
tests/virlockspacetest.c | 4 +-
tests/virnetmessagetest.c | 2 +
tests/virnetsockettest.c | 3 +-
tests/virnettlscontexttest.c | 3 +-
tests/virnettlshelpers.c | 1 -
tests/virnettlssessiontest.c | 3 +-
tests/virportallocatormock.c | 5 +-
tests/virtestmock.c | 9 +-
tests/virtimetest.c | 2 +
tests/viruritest.c | 2 +
tests/vshtabletest.c | 8 +-
tools/nss/libvirt_nss.c | 7 +-
tools/virsh-domain.c | 46 +++++++-
tools/virt-login-shell.c | 6 +-
tools/vsh-table.c | 2 +-
tools/vsh.c | 12 +-
101 files changed, 859 insertions(+), 452 deletions(-)
delete mode 100644 m4/virt-win-cygwin.m4
--
2.24.1
4 years, 10 months
[PATCH 0/3] Trivial fixes
by Andrea Bolognani
Pushed as
- wait for it -
trivial.
Andrea Bolognani (3):
docs: Fix link to virt-qemu-run(1)
qemu_shim: Fix typos
qemu_shim: Update temporary directory template
docs/manpages/index.rst | 2 +-
src/qemu/qemu_shim.c | 6 +++---
2 files changed, 4 insertions(+), 4 deletions(-)
--
2.24.1
4 years, 10 months
[libvirt] [PATCH v4 0/6] introduce support for an embedded driver mode
by Daniel P. Berrangé
This is a followup to:
v1: https://www.redhat.com/archives/libvir-list/2019-May/msg00467.html
v2: https://www.redhat.com/archives/libvir-list/2019-December/msg00050.html
v3: https://www.redhat.com/archives/libvir-list/2019-December/msg01364.html
This series implements support for an embedded driver mode for libvirt,
with initial support in the QEMU and secrets drivers.
In this mode of operation, the driver stores all its config and state
under a private directory tree. See the individual patches for the
illustrated directory hierarchy used.
The intent of this embedded mode is to suit cases where the application
is using virtualization as a building block for some functionality, as
opposed to running traditional "full OS" builds.
The long time posterchild example would be libguestfs, while a more
recent example could be Kata containers.
The general principal in enabling this embedded mode is that the
functionality available should be identical to that seen when the
driver is running inside libvirtd. This is achieved by loading the
exact same driver .so module as libvirtd would load, and simply
configuring it with a different directory layout.
The result of this is that when running in embedded mode, the driver
can still talk to other secondary drivers running inside libvirtd
if desired. This is useful, for example, to connect a VM to the
default virtual network.
The secondary drivers can be made to operate in embedded mode as
well, however, this will require some careful consideration for each
driver to ensure they don't clash with each other. Thus in this series
only the secret driver is enabled for embedded mode. This is required
to enable use of VMs with encrypted disks, or authenticated network
block storage.
In this series we introduce a new command line tool 'virt-qemu-run'
which is a really simple tool for launching a VM in embedded mode.
I'm not entirely sure whether we should provide this as an official
supported tool in this way, or merely put it into the 'examples'
directory as demo-ware.
With testing of the virt-qemu-run tool we can immediately see what the
next important thing to tackle is: performance. We have not really cared
too much about the startup performance of libvirtd as this is a one time
cost when the mgmt application connects. We did none the less cache
capabilities because probing caps for 30 QEMU binaries takes a long time.
Even with this caching it takes an unacceptably long time to start a VM
in embedded mode. About 100 ms to open the embedded QEMU driver,
assuming pre-cached capabilies - ~2 seconds if not cached and all 30
QEMU targets are present. Then about 300 ms to actually start the QEMU
guest.
IOW, about 400 ms to get QEMU running. NB this is measuring time from
launching the virt-run-qemu program, to the point at which the API call
'virDomainCreate' returns control. This has both libvirt & QEMU overhead
in & I don't have clear figures to distinguish, but I can see a 40 ms
delay between issuing the 'qmp_capabilities' call and getting a reply,
which is QEMU startup overead.
This is a i440fx based QEMU with a general purpose virtio-pci config
(disk, net, etc) tyupical for running a full OS. I've not tried any
kind of optimized QEMU config with microvm.
I've already started on measuring & optimizing & identified several key
areas that can be addressed, but it is all ultimately about not doing
work before we need the answers from that work (which often means we
will never do the work at all).
For example, we shouldn't probe all 30 QEMU's upfront. If the app is
only going to create an x86_64 KVM guest we should only care about that
1 QEMU. This is painful because parsing any guest XML requires a
virCapsPtr which in turn causes probing of every QEMU binary. I've got
in progress patches to eliminate virCapsPtr almost entirely and work
directly with the virQEMUCapsPtr instead.
It is possible we'll want to use a different file format for storing
the cached QEMU capabilities, and the CPU feature/model info. Parsing
this XML is a non-negligible time sink. A binary format is likely way
quicker, especially if its designed to be just mmap'able for direct
read. To be investigated...
We shouldn't probe for whether host PM suspend is possible unless
someone wants that info, or tries to issue that API call.
After starting QEMU we spend 150-200 ms issuing a massive number of
qom-get calls to check whether QEMU enabled each individual CPU feature
flag. We only need this info if someone asks for the live XML or we
intend to live migrate etc. So we shouldn't issue these qom-get calls in
the "hot path" of QEMU startup. It can be done later in a non-time
critical point. Also the QEMU API for this is horribly inefficient to
require so many qom-get calls.
There's more but I won't talk about it now. Suffice to say that I think
we can get libvirt overhead down to less than 100 ms fairly easily and
probably even down to less than 50 ms without much effort.
The exact figure will depend on what libvirt features you want enabled,
and how much work we want/need to put into optimization. We'll want to
fix the really gross mistakes & slow downs, but we'll want guidance from
likely users as to their VM startup targets to decide how much work
needs investing.
This optimization will ultimately help non-embedded QEMU mode too,
making it faster to respond & start.
Changed in v4:
- Prevent opening the embedded drivers many times with different
root paths
- Add docs warning about not running APIs from the event loop
thread
Changed in v3:
- Rebased to master
- Merge some simple acked patches
Changed in v2:
- Use a simplified directory layout for embedded mode. Previously we
just put a dir prefix onto the normal paths. This has the downside
that the embedded drivers paths are needlessly different for
privileged vs unprivileged user. It also results in very long paths
which can be a problem for the UNIX socket name length limits.
- Also ported the secret driver to support embedded mode
- Check to validate that the event loop is registered.
- Add virt-qemu-run tool for embedded usage.
- Added docs for the qemu & secret driver explaining embedded mode
Daniel P. Berrangé (6):
util: add helper API for getting URI parameters
libvirt: pass a directory path into drivers for embedded usage
libvirt: support an "embed" URI path selector for opening drivers
qemu: add support for running QEMU driver in embedded mode
secrets: add support for running secret driver in embedded mode
qemu: introduce a new "virt-qemu-run" program
build-aux/syntax-check.mk | 2 +-
docs/Makefile.am | 5 +
docs/drivers.html.in | 1 +
docs/drvqemu.html.in | 99 ++++++++
docs/drvsecret.html.in | 82 ++++++
docs/manpages/index.rst | 1 +
docs/manpages/virt-qemu-run.rst | 114 +++++++++
libvirt.spec.in | 2 +
src/Makefile.am | 1 +
src/driver-state.h | 2 +
src/driver.h | 2 +
src/interface/interface_backend_netcf.c | 7 +
src/interface/interface_backend_udev.c | 7 +
src/libvirt.c | 93 ++++++-
src/libvirt_internal.h | 4 +-
src/libvirt_private.syms | 1 +
src/libxl/libxl_driver.c | 7 +
src/lxc/lxc_driver.c | 8 +
src/network/bridge_driver.c | 7 +
src/node_device/node_device_hal.c | 7 +
src/node_device/node_device_udev.c | 7 +
src/nwfilter/nwfilter_driver.c | 7 +
src/qemu/Makefile.inc.am | 13 +
src/qemu/qemu_conf.c | 45 +++-
src/qemu/qemu_conf.h | 8 +-
src/qemu/qemu_driver.c | 34 ++-
src/qemu/qemu_process.c | 15 +-
src/qemu/qemu_shim.c | 322 ++++++++++++++++++++++++
src/remote/remote_daemon.c | 1 +
src/remote/remote_driver.c | 1 +
src/secret/secret_driver.c | 53 +++-
src/storage/storage_driver.c | 7 +
src/util/viruri.c | 16 ++
src/util/viruri.h | 2 +
src/vz/vz_driver.c | 7 +
tests/domaincapstest.c | 2 +-
tests/testutilsqemu.c | 3 +-
37 files changed, 967 insertions(+), 28 deletions(-)
create mode 100644 docs/drvsecret.html.in
create mode 100644 docs/manpages/virt-qemu-run.rst
create mode 100644 src/qemu/qemu_shim.c
--
2.23.0
4 years, 10 months
[libvirt PATCH 0/4] fix recent commits
by Ján Tomko
Ján Tomko (4):
docs: fix virt-qemu-run man page
docs: fix since version in driver documentation
qemu_shim: cosmetic fixes
qemu: snapshot: go through cleanup on error
docs/drvqemu.html.in | 4 ++--
docs/drvsecret.html.in | 2 +-
docs/manpages/virt-qemu-run.rst | 4 ++--
src/qemu/qemu_driver.c | 2 +-
src/qemu/qemu_shim.c | 4 ++--
5 files changed, 8 insertions(+), 8 deletions(-)
--
2.21.0
4 years, 10 months
[libvirt] [PATCH] gitdm: Add missing entries
by Andrea Bolognani
A few new companies and individuals contributed to libvirt since
the last time the gitdm configuration was updated.
Signed-off-by: Andrea Bolognani <abologna(a)redhat.com>
---
docs/gitdm/aliases | 1 +
docs/gitdm/companies/others | 3 +++
docs/gitdm/groups/unaffiliated | 3 +++
3 files changed, 7 insertions(+)
diff --git a/docs/gitdm/aliases b/docs/gitdm/aliases
index c3c837f89f..83637bdff9 100644
--- a/docs/gitdm/aliases
+++ b/docs/gitdm/aliases
@@ -2,6 +2,7 @@
"jdenemar redhat com" jdenemar(a)redhat.com
"pkrempa@redhat st.com" pkrempa(a)redhat.com
+berrange(a)localhost.localdomain berrange(a)redhat.com
jyang@redhat jyang(a)redhat.com
wangjie88.huawei.com wangjie88(a)huawei.com
diff --git a/docs/gitdm/companies/others b/docs/gitdm/companies/others
index 43f2cc116d..affbaf3ea2 100644
--- a/docs/gitdm/companies/others
+++ b/docs/gitdm/companies/others
@@ -1,4 +1,5 @@
6wind.com 6WIND
+cmss.chinamobile.com China Mobile
active.by ActiveCloud
aero.org Aerospace
akamai.com Akamai
@@ -37,6 +38,7 @@ hitachi.com Hitachi
hoster-ok.com hoster-ok.com
hp.com HP
huawei.com Huawei
+hygon.cn Hygon
inktank.com Inktank Storage
intel.com Intel
intellilink.co.jp NTT DATA INTELLILINK
@@ -60,6 +62,7 @@ nicira.com Nicira
nimboxx.com NIMBOXX
novell.com Novell
ntt.co.jp NTT Group
+nutanix.com Nutanix
ohmu.fi OHMU
open-minds.org OpenThink
oracle.com Oracle
diff --git a/docs/gitdm/groups/unaffiliated b/docs/gitdm/groups/unaffiliated
index f52338c736..70e82ba894 100644
--- a/docs/gitdm/groups/unaffiliated
+++ b/docs/gitdm/groups/unaffiliated
@@ -5,6 +5,7 @@
126.com
gmail.com
gmx.com
+gmx.de
googlemail.com
hotmail.com
mail.ru
@@ -24,6 +25,7 @@ adam(a)pandorasboxen.com
agx(a)sigxcpu.org
alexander.nusov(a)nfvexpress.com
andres(a)lagarcavilla.org
+andrew(a)interpretmath.pw
asad.saeed(a)acidseed.com
atler(a)pld-linux.org
benoar(a)dolka.fr
@@ -40,6 +42,7 @@ exo(a)tty.sk
fritz(a)fritz-elfert.de
gene(a)czarc.net
gordon(a)dragonsdawn.net
+gregor(a)kopka.net
heathpetersen(a)kandre.com
ibaldo(a)adinet.com.uy
igor47(a)moomers.org
--
2.24.1
4 years, 10 months
[PATCH] qemu: fix linking virt-qemu-run on some distros
by Daniel P. Berrangé
Debian/Ubuntu linkers are more strict that other distros requiring glib
to be linked explicitly.
macOS needs -export-dynamic instead of -Wl,--export-dynamic
Signed-off-by: Daniel P. Berrangé <berrange(a)redhat.com>
---
Pushed as a CI build fix for Debian/Ubuntu/macOS
src/qemu/Makefile.inc.am | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/src/qemu/Makefile.inc.am b/src/qemu/Makefile.inc.am
index c6b04c3217..d04a87e659 100644
--- a/src/qemu/Makefile.inc.am
+++ b/src/qemu/Makefile.inc.am
@@ -253,6 +253,9 @@ bin_PROGRAMS += virt-qemu-run
virt_qemu_run_SOURCES = $(QEMU_SHIM_SOURCES)
-virt_qemu_run_LDADD = libvirt.la
-virt_qemu_run_LDFLAGS = -Wl,--export-dynamic
+virt_qemu_run_LDADD = \
+ libvirt.la \
+ $(GLIB_LIBS) \
+ $(NULL)
+virt_qemu_run_LDFLAGS = -export-dynamic
endif WITH_QEMU
--
2.24.1
4 years, 10 months
[PATCH] bhyve: add 'root' parameter to driver initializer
by Daniel P. Berrangé
Signed-off-by: Daniel P. Berrangé <berrange(a)redhat.com>
---
Pushed as a FreeBSD build fix
src/bhyve/bhyve_driver.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/src/bhyve/bhyve_driver.c b/src/bhyve/bhyve_driver.c
index 5b8fba7467..713301399e 100644
--- a/src/bhyve/bhyve_driver.c
+++ b/src/bhyve/bhyve_driver.c
@@ -1175,11 +1175,18 @@ bhyveStateCleanup(void)
static int
bhyveStateInitialize(bool privileged,
+ const char *root,
virStateInhibitCallback callback G_GNUC_UNUSED,
void *opaque G_GNUC_UNUSED)
{
bool autostart = true;
+ if (root != NULL) {
+ virReportError(VIR_ERR_INVALID_ARG, "%s",
+ _("Driver does not support embedded mode"));
+ return -1;
+ }
+
if (!privileged) {
VIR_INFO("Not running privileged, disabling driver");
return VIR_DRV_STATE_INIT_SKIPPED;
--
2.24.1
4 years, 10 months