[libvirt PATCH 0/2] util: avoid race in glib event loop which causes crashes
by Daniel P. Berrangé
A while ago Cole reported that libvirt is exposing a long
term bug in GLib's event loop that results in non-deterministic
crashes:
https://www.redhat.com/archives/libvir-list/2020-February/msg00422.html
I kept forgetting to investigate it until now.
Daniel P. Berrangé (2):
util: keep track of full GSource object not source ID number
util: avoid crash due to race in glib event loop code
src/rpc/virnetclient.c | 27 ++++++-----
src/util/vireventglib.c | 91 +++++++++++++++++++++++++-----------
src/util/vireventglibwatch.c | 19 ++++----
src/util/vireventglibwatch.h | 13 +++---
4 files changed, 97 insertions(+), 53 deletions(-)
--
2.24.1
4 years, 5 months
[PATCH 00/32] docs: convert formatdomain.html.in to rst and split it up
by Peter Krempa
This is full version of:
https://www.redhat.com/archives/libvir-list/2020-July/msg00717.html
where I've split out all the subelements into individual files.
This version is also based on top of Pavel's rewrite to the meson build
system to minimize his conflicts and also it was simpler to achieve what
I wanted.
You can fetch this from my repo including Pavel's patches.
git fetch https://gitlab.com/pipo.sk/libvirt.git formatdomain-rst-meson
Unfortunately the pipeline jobs for libvirt are broken on some targets
for non-obvious reasons and for some weird reason the 'website' job is
in the 3rd stage of the pipeline. Thus you don't get to see the final
result until it get's fixed withoug compiling it yourself.
Peter Krempa (32):
docs: css: Make definition list 'code' entries bold when converted
from rst
docs: meson: Simplify generation of html files
docs: switch building of rst files to a dictionary
docs: meson: Add dependencies for RST docs
docs: formatdomain: Convert to rst
docs: formatdomain: Split out <devices>
docs: formatdomain-devices: Split out <disk>
docs: formatdomain-devices: Split out <filesystem>
docs: formatdomain-devices: Split out address information
docs: formatdomain-devices: Split out virtio information
docs: formatdomain-devices: Split out <controller>
docs: formatdomain-devices: Split out <lease>
docs: formatdomain-devices: Split out <hostdev>
docs: formatdomain-devices: Split out <redirdev>
docs: formatdomain-devices: Split out <smartcard>
docs: formatdomain-devices: Split out <interface>
docs: formatdomain-devices: Split out <input>
docs: formatdomain-devices: Split out <hub>
docs: formatdomain-devices: Split out <graphics>
docs: formatdomain-devices: Split out <videO>
docs: formatdomain-devices: Split out chardevs
docs: formatdomain-devices: Split out <sound>
docs: formatdomain-devices: Split out <watchdog>
docs: formatdomain-devices: Split out <memballoon>
docs: formatdomain-devices: Split out <rng>
docs: formatdomain-devices: Split out <tpm>
docs: formatdomain-devices: Split out <nvram>
docs: formatdomain-devices: Split out <panic>
docs: formatdomain-devices: Split out <shmem>
docs: formatdomain-devices: Split out <memory>
docs: formatdomain-devices: Split out <iommu>
docs: formatdomain-devices: Split out <vsock>
docs/formatdomain-devices-address.rst | 92 +
docs/formatdomain-devices-chardev.rst | 682 ++
docs/formatdomain-devices-controller.rst | 305 +
docs/formatdomain-devices-disk.rst | 821 ++
docs/formatdomain-devices-filesystem.rst | 169 +
docs/formatdomain-devices-graphics.rst | 244 +
docs/formatdomain-devices-hostdev.rst | 337 +
docs/formatdomain-devices-hub.rst | 23 +
docs/formatdomain-devices-input.rst | 46 +
docs/formatdomain-devices-interface.rst | 1258 +++
docs/formatdomain-devices-iommu.rst | 54 +
docs/formatdomain-devices-lease.rst | 35 +
docs/formatdomain-devices-memballoon.rst | 69 +
docs/formatdomain-devices-memory.rst | 151 +
docs/formatdomain-devices-nvram.rst | 26 +
docs/formatdomain-devices-panic.rst | 44 +
docs/formatdomain-devices-redirdev.rst | 50 +
docs/formatdomain-devices-rng.rst | 76 +
docs/formatdomain-devices-shmem.rst | 50 +
docs/formatdomain-devices-smartcard.rst | 71 +
docs/formatdomain-devices-sound.rst | 45 +
docs/formatdomain-devices-tpm.rst | 94 +
docs/formatdomain-devices-video.rst | 101 +
docs/formatdomain-devices-virtio.rst | 59 +
docs/formatdomain-devices-vsock.rst | 22 +
docs/formatdomain-devices-watchdog.rst | 63 +
docs/formatdomain-devices.rst | 67 +
docs/formatdomain.html.in | 9848 ----------------------
docs/formatdomain.rst | 2390 ++++++
docs/generic.css | 2 +-
docs/meson.build | 131 +-
31 files changed, 7527 insertions(+), 9898 deletions(-)
create mode 100644 docs/formatdomain-devices-address.rst
create mode 100644 docs/formatdomain-devices-chardev.rst
create mode 100644 docs/formatdomain-devices-controller.rst
create mode 100644 docs/formatdomain-devices-disk.rst
create mode 100644 docs/formatdomain-devices-filesystem.rst
create mode 100644 docs/formatdomain-devices-graphics.rst
create mode 100644 docs/formatdomain-devices-hostdev.rst
create mode 100644 docs/formatdomain-devices-hub.rst
create mode 100644 docs/formatdomain-devices-input.rst
create mode 100644 docs/formatdomain-devices-interface.rst
create mode 100644 docs/formatdomain-devices-iommu.rst
create mode 100644 docs/formatdomain-devices-lease.rst
create mode 100644 docs/formatdomain-devices-memballoon.rst
create mode 100644 docs/formatdomain-devices-memory.rst
create mode 100644 docs/formatdomain-devices-nvram.rst
create mode 100644 docs/formatdomain-devices-panic.rst
create mode 100644 docs/formatdomain-devices-redirdev.rst
create mode 100644 docs/formatdomain-devices-rng.rst
create mode 100644 docs/formatdomain-devices-shmem.rst
create mode 100644 docs/formatdomain-devices-smartcard.rst
create mode 100644 docs/formatdomain-devices-sound.rst
create mode 100644 docs/formatdomain-devices-tpm.rst
create mode 100644 docs/formatdomain-devices-video.rst
create mode 100644 docs/formatdomain-devices-virtio.rst
create mode 100644 docs/formatdomain-devices-vsock.rst
create mode 100644 docs/formatdomain-devices-watchdog.rst
create mode 100644 docs/formatdomain-devices.rst
delete mode 100644 docs/formatdomain.html.in
create mode 100644 docs/formatdomain.rst
--
2.26.2
4 years, 5 months
[libvirt PATCH 0/4] ci: run clang on Linux and parallelize more
by Ján Tomko
I found out we do not run tests compiled with my preferred compiler [0]:
https://www.redhat.com/archives/libvir-list/2020-July/msg01280.html
Run it on Fedora 31 and Rawhide, to get some variety in the coverage.
Corresponding libvirt-ci change:
https://gitlab.com/libvirt/libvirt-ci/-/merge_requests/38
[0] although I haven't benchmarked the build time recently
https://gitlab.com/jano.tomko/libvirt/-/pipelines/171846516
Ján Tomko (4):
ci: refresh Dockerfiles
ci: add a job for clang
ci: run Cirrus-based builds sooner
ci: use 'needs' more often
.gitlab-ci.yml | 29 ++++++++++++++++++-
ci/containers/libvirt-centos-7.Dockerfile | 1 -
ci/containers/libvirt-centos-8.Dockerfile | 1 -
.../libvirt-centos-stream.Dockerfile | 1 -
...libvirt-debian-10-cross-aarch64.Dockerfile | 1 -
.../libvirt-debian-10-cross-armv6l.Dockerfile | 2 +-
.../libvirt-debian-10-cross-armv7l.Dockerfile | 2 +-
.../libvirt-debian-10-cross-i686.Dockerfile | 1 -
.../libvirt-debian-10-cross-mips.Dockerfile | 1 -
...ibvirt-debian-10-cross-mips64el.Dockerfile | 1 -
.../libvirt-debian-10-cross-mipsel.Dockerfile | 1 -
...libvirt-debian-10-cross-ppc64le.Dockerfile | 1 -
.../libvirt-debian-10-cross-s390x.Dockerfile | 1 -
ci/containers/libvirt-debian-10.Dockerfile | 1 -
...ibvirt-debian-sid-cross-aarch64.Dockerfile | 1 -
...libvirt-debian-sid-cross-armv6l.Dockerfile | 2 +-
...libvirt-debian-sid-cross-armv7l.Dockerfile | 2 +-
.../libvirt-debian-sid-cross-i686.Dockerfile | 1 -
...bvirt-debian-sid-cross-mips64el.Dockerfile | 1 -
...libvirt-debian-sid-cross-mipsel.Dockerfile | 2 +-
...ibvirt-debian-sid-cross-ppc64le.Dockerfile | 1 -
.../libvirt-debian-sid-cross-s390x.Dockerfile | 1 -
ci/containers/libvirt-debian-sid.Dockerfile | 1 -
ci/containers/libvirt-fedora-31.Dockerfile | 2 +-
ci/containers/libvirt-fedora-32.Dockerfile | 2 +-
.../libvirt-fedora-rawhide.Dockerfile | 2 +-
ci/containers/libvirt-opensuse-151.Dockerfile | 1 -
ci/containers/libvirt-ubuntu-1804.Dockerfile | 1 -
ci/containers/libvirt-ubuntu-2004.Dockerfile | 1 -
29 files changed, 36 insertions(+), 29 deletions(-)
--
2.26.2
4 years, 5 months
[libvirt PATCH] ci: Use correct name for armv7l architecture
by Andrea Bolognani
Turns out 'ldebian' was not a typo, but rather the result of
mistakenly shifting the dash in 'armv7l-debian' one spot to the
left.
Fixes: 821100e81281eef9beeb15c3f4bf6a000d6a03c5
Reported-by: Pavel Hrdina <phrdina(a)redhat.com>
Signed-off-by: Andrea Bolognani <abologna(a)redhat.com>
---
Pushed as trivial.
.gitlab-ci.yml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 9d179648f0..c96e72198e 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -178,7 +178,7 @@ armv6l-debian-10-container:
variables:
NAME: debian-10-cross-armv6l
-armv7-debian-10-container:
+armv7l-debian-10-container:
<<: *container_optional_job_definition
variables:
NAME: debian-10-cross-armv7l
@@ -223,7 +223,7 @@ armv6l-debian-sid-container:
variables:
NAME: debian-sid-cross-armv6l
-armv7-debian-sid-container:
+armv7l-debian-sid-container:
<<: *container_job_definition
variables:
NAME: debian-sid-cross-armv7l
--
2.25.4
4 years, 5 months
[libvirt PATCH] ci: Fix typo 'ldebian'
by Andrea Bolognani
Fixes: 95abbdc432133b9ae4a76d15251d64b5893717e6
Signed-off-by: Andrea Bolognani <abologna(a)redhat.com>
---
Pushed as trivial.
.gitlab-ci.yml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 702198ec8e..9d179648f0 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -178,7 +178,7 @@ armv6l-debian-10-container:
variables:
NAME: debian-10-cross-armv6l
-armv7-ldebian-10-container:
+armv7-debian-10-container:
<<: *container_optional_job_definition
variables:
NAME: debian-10-cross-armv7l
@@ -223,7 +223,7 @@ armv6l-debian-sid-container:
variables:
NAME: debian-sid-cross-armv6l
-armv7-ldebian-sid-container:
+armv7-debian-sid-container:
<<: *container_job_definition
variables:
NAME: debian-sid-cross-armv7l
--
2.25.4
4 years, 5 months
[PATCH] docs/formatdomain.html: update hypervisors which don't support transient disk
by Meina Li
Signed-off-by: Meina Li <meili(a)redhat.com>
---
docs/formatdomain.html.in | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/docs/formatdomain.html.in b/docs/formatdomain.html.in
index f3a639b972..394eab2897 100644
--- a/docs/formatdomain.html.in
+++ b/docs/formatdomain.html.in
@@ -4092,7 +4092,8 @@
contents should be reverted automatically when the guest
exits. With some hypervisors, marking a disk transient
prevents the domain from participating in migration or
- snapshots. <span class="since">Since 0.9.5</span>
+ snapshots. Some hypervisors don't support this feature,
+ such as Xen, QEMU and OpenVZ. <span class="since">Since 0.9.5</span>
</dd>
<dt><code>serial</code></dt>
<dd>If present, this specify serial number of virtual hard drive.
--
2.27.0
4 years, 5 months
[libvirt PATCH 0/4] tests: bhyve: use more g_auto
by Ján Tomko
Ján Tomko (4):
tests: bhyve: split variable declarations
tests: bhyve: use g_autofree where possible
tests: bhyve: use g_autoptr where possible
tests: bhyve: remove unnecessary labels
tests/bhyveargv2xmltest.c | 47 ++++++++++++++-------------------------
tests/bhyvexml2argvtest.c | 33 ++++++++++-----------------
tests/bhyvexml2xmltest.c | 6 ++---
3 files changed, 31 insertions(+), 55 deletions(-)
--
2.26.2
4 years, 5 months
[PATCH] qemuDomainSaveInternal: fix memoryleak of virDomainDef
by Chuan Zheng
From: Zheng Chuan <zhengchuan(a)huawei.com>
virDomainDefPtr 'def' is forgot to free after qemuDomainDefFormatLive(), fix it.
Signed-off-by: Zheng Chuan <zhengchuan(a)huawei.com>
---
src/qemu/qemu_driver.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index 53980d4..b145318 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -3369,6 +3369,7 @@ qemuDomainSaveInternal(virQEMUDriverPtr driver,
goto endjob;
}
xml = qemuDomainDefFormatLive(driver, priv->qemuCaps, def, NULL, true, true);
+ virDomainDefFree(def);
} else {
xml = qemuDomainDefFormatLive(driver, priv->qemuCaps, vm->def,
priv->origCPU, true, true);
--
1.8.3.1
4 years, 5 months
[RFC] Dynamic creation of VFs in a network definition containing an SRIOV device
by Paulo de Rezende Pinatti
Context:
Libvirt can already detect the active VFs of an SRIOV PF device
specified in a network definition and automatically assign these VFs to
guests via an <interface> entry referring to that network in the domain
definition. This functionality, however, depends on the system
administrator having activated in advance the desired number of VFs
outside of libvirt (either manually or through system scripts).
It would be more convenient if the VFs activation could also be managed
inside libvirt so that the whole management of the VF pool is done
exclusively by libvirt and in only one place (the network definition)
rather than spread in different components of the system.
Proposal:
We can extend the existing network definition by adding a new tag <vf>
as a child of the tag <pf> in order to allow the user to specify how
many VFs they wish to have activated for the corresponding SRIOV device
when the network is started. That would look like the following:
<network>
<name>sriov-pool</name>
<forward mode='hostdev' managed='yes'>
<pf dev='eth1'>
<vf num='10'/>
</pf>
</forward>
</network>
At xml definition time nothing gets changed on the system, as it is
today. When the network is started with 'virth net-start sriov-pool'
then libvirt will activate the desired number of VFs as specified in the
tag <vf> of the network definition.
The operation might require resetting 'sriov_numvfs' to zero first in
case the number of VFs currently active differs from the desired value.
In order to avoid the situation where the user tries to start the
network when a VF is already assigned to a running guest, the
implementation will have to ensure all existing VFs of the target PF are
not in use, otherwise VFs would be inadvertently hot-unplugged from
guests upon network start. In such cases, trying to start the network
will then result in an error.
Stopping the network with 'virsh net-destroy' will cause all VFs to be
removed. Similarly to when starting the network, the implementation will
also need to verify for running guests in order to prevent inadvertent
hot-unplugging.
Is the functionality proposed above desirable?
--
Thanks and best regards,
Paulo de Rezende Pinatti
4 years, 5 months