[PATCH 0/5] NUMA CPUs 'auto-fill' for incomplete topologies
by Daniel Henrique Barboza
Hi,
This series implements a convenience feature for the case where
the user defines an incomplete NUMA topology in the domain,
when the sum of all cpus in each NUMA cell is less than the
maximum vcpus count of the domain.
This is an implementation based on Peter Krempa's suggestion in [1].
The documentation patch (04), aside from documentating this new
behavior, while also letting the user know that using incomplete
NUMA topologies are not advised.
This feature does not break migration ABI. I tested it in a migration
using an incomplete NUMA topology domain to migrate to another host
with a patched Libvirt. A guest with this NUMA topology, declaring
9 vcpus and short of 7 vcpus to complete the total of 16:
<vcpu placement='auto'>16</vcpu>
[...]
<cpu mode='custom' match='exact' check='none'>
<model fallback='forbid'>POWER9</model>
<numa>
<cell id='0' cpus='0-1,6' memory='3906250' unit='KiB'/>
<cell id='1' cpus='2-4' memory='3906250' unit='KiB'/>
<cell id='2' cpus='10,12' memory='3906250' unit='KiB'/>
<cell id='3' cpus='14' memory='3906250' unit='KiB'/>
</numa>
</cpu>
Successfully migrates to a patched Libvirt, ending up with
this topology where the missing VCPUs were added to node 0:
<vcpu placement='auto'>16</vcpu>
[...]
<cpu mode='custom' match='exact' check='none'>
<model fallback='forbid'>POWER9</model>
<numa>
<cell id='0' cpus='0-1,5-9,11,13,15' memory='3932160' unit='KiB'/>
<cell id='1' cpus='2-4' memory='3932160' unit='KiB'/>
<cell id='2' cpus='10,12' memory='3932160' unit='KiB'/>
<cell id='3' cpus='14' memory='3932160' unit='KiB'/>
</numa>
</cpu>
[1] https://www.redhat.com/archives/libvir-list/2019-June/msg00263.html
Daniel Henrique Barboza (5):
numa_conf.c: add helper functions for cpumap operations
qemu_domain.c: NUMA CPUs auto-fill for incomplete topologies
qemuxml2xmltest.c: add NUMA vcpus auto fill tests
formatdomain.html.in: document the NUMA cpus auto fill feature
qemu_validate.c: revert NUMA CPU range user warning
docs/formatdomain.html.in | 11 ++++-
src/conf/numa_conf.c | 46 ++++++++++++++++++
src/conf/numa_conf.h | 3 ++
src/libvirt_private.syms | 1 +
src/qemu/qemu_domain.c | 47 +++++++++++++++++++
src/qemu/qemu_domain.h | 4 ++
src/qemu/qemu_driver.c | 9 ++++
src/qemu/qemu_validate.c | 19 ++------
.../numavcpus-topology-mismatch.xml | 37 +++++++++++++++
...avcpus-topology-mismatch.x86_64-latest.xml | 38 +++++++++++++++
tests/qemuxml2xmltest.c | 1 +
11 files changed, 201 insertions(+), 15 deletions(-)
create mode 100644 tests/qemuxml2argvdata/numavcpus-topology-mismatch.xml
create mode 100644 tests/qemuxml2xmloutdata/numavcpus-topology-mismatch.x86_64-latest.xml
--
2.26.2
4 years, 9 months
[PATCH v6 00/10] Introducing TPM Proxy device support for PPC64
by Daniel Henrique Barboza
No functional changes made from the previous version. Just a
rebase and a trivial conflict fix in news.xml after Libvirt
6.4.0 release.
changes in v6:
- fixed news.xml conflict after 6.4.0 release, moved the change
to 6.5.0
- added Stefan's r-b on patches 4, 5 and 6
- added Satheesh's tested-by tag on all patches
Gitlab tree: https://gitlab.com/danielhb/libvirt/tree/spapr_tpm_proxy_v6
v5 link: https://www.redhat.com/archives/libvir-list/2020-May/msg00997.html
v4 link: https://www.redhat.com/archives/libvir-list/2020-May/msg00814.html
v3 link: https://www.redhat.com/archives/libvir-list/2020-May/msg00642.html
v2 link: https://www.redhat.com/archives/libvir-list/2020-May/msg00604.html
v1 link: https://www.redhat.com/archives/libvir-list/2020-May/msg00351.html
Daniel Henrique Barboza (10):
docs: documentation and schema for the new TPM Proxy model
qemu: Extend QEMU capabilities with 'spapr-tpm-proxy'
qemu_extdevice.c: remove unneeded 'ret' variable
qemu_tpm, security, tests: change 'switch' clauses for 'if'
conf, qemu, security, tests: introducing 'def->tpms' array
qemu: add validations after TPM Proxy model introduction
tests: add XML schema tests for the TPM Proxy device
qemu: build command line for the TPM Proxy device
tests/qemuxml2argvtest.c: add TPM Proxy command line tests
docs/news.xml: update for the new TPM Proxy device
docs/formatdomain.html.in | 19 ++++-
docs/news.xml | 17 +++++
docs/schemas/domaincommon.rng | 1 +
src/conf/domain_audit.c | 4 +-
src/conf/domain_conf.c | 50 +++++++-----
src/conf/domain_conf.h | 6 +-
src/qemu/qemu_alias.c | 9 ++-
src/qemu/qemu_capabilities.c | 4 +
src/qemu/qemu_capabilities.h | 3 +
src/qemu/qemu_cgroup.c | 10 ++-
src/qemu/qemu_command.c | 59 +++++++++++---
src/qemu/qemu_domain.c | 68 ++++++++++++++---
src/qemu/qemu_domain_address.c | 11 ++-
src/qemu/qemu_extdevice.c | 24 +++---
src/qemu/qemu_tpm.c | 76 +++++++++----------
src/qemu/qemu_validate.c | 19 +++++
src/security/security_dac.c | 8 +-
src/security/security_selinux.c | 44 +++++------
src/security/virt-aa-helper.c | 14 ++--
.../qemucapabilitiesdata/caps_4.2.0.ppc64.xml | 1 +
.../qemucapabilitiesdata/caps_5.0.0.ppc64.xml | 1 +
tests/qemuxml2argvdata/ppc64-tpm-double.xml | 34 +++++++++
.../ppc64-tpmproxy-double.xml | 38 ++++++++++
.../ppc64-tpmproxy-single.ppc64-latest.args | 34 +++++++++
.../ppc64-tpmproxy-single.xml | 33 ++++++++
.../ppc64-tpmproxy-with-tpm.ppc64-latest.args | 37 +++++++++
.../ppc64-tpmproxy-with-tpm.xml | 36 +++++++++
tests/qemuxml2argvtest.c | 33 +++++---
.../ppc64-tpmproxy-single.ppc64-latest.xml | 42 ++++++++++
.../ppc64-tpmproxy-with-tpm.ppc64-latest.xml | 46 +++++++++++
tests/qemuxml2xmltest.c | 2 +
31 files changed, 631 insertions(+), 152 deletions(-)
create mode 100644 tests/qemuxml2argvdata/ppc64-tpm-double.xml
create mode 100644 tests/qemuxml2argvdata/ppc64-tpmproxy-double.xml
create mode 100644 tests/qemuxml2argvdata/ppc64-tpmproxy-single.ppc64-latest.args
create mode 100644 tests/qemuxml2argvdata/ppc64-tpmproxy-single.xml
create mode 100644 tests/qemuxml2argvdata/ppc64-tpmproxy-with-tpm.ppc64-latest.args
create mode 100644 tests/qemuxml2argvdata/ppc64-tpmproxy-with-tpm.xml
create mode 100644 tests/qemuxml2xmloutdata/ppc64-tpmproxy-single.ppc64-latest.xml
create mode 100644 tests/qemuxml2xmloutdata/ppc64-tpmproxy-with-tpm.ppc64-latest.xml
--
2.26.2
4 years, 9 months
[PATCH] qemu: blockcommit: Fix placement of qemuDomainDiskBlockJobIsSupported
by Peter Krempa
Commit b50a8354f6d added call to qemuDomainDiskBlockJobIsSupported prior
to filling the 'disk' variable resulting in a crash when attempting a
block commit.
Signed-off-by: Peter Krempa <pkrempa(a)redhat.com>
---
src/qemu/qemu_driver.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index dd9ae30bb5..88517ba6a7 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -18504,9 +18504,6 @@ qemuDomainBlockCommit(virDomainPtr dom,
if (virDomainObjCheckActive(vm) < 0)
goto endjob;
- if (!qemuDomainDiskBlockJobIsSupported(vm, disk))
- goto endjob;
-
blockdev = virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_BLOCKDEV);
/* Convert bandwidth MiB to bytes, if necessary */
@@ -18523,6 +18520,9 @@ qemuDomainBlockCommit(virDomainPtr dom,
if (!(disk = qemuDomainDiskByName(vm->def, path)))
goto endjob;
+ if (!qemuDomainDiskBlockJobIsSupported(vm, disk))
+ goto endjob;
+
if (virStorageSourceIsEmpty(disk->src)) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
_("disk %s has no source file to be committed"),
--
2.26.2
4 years, 9 months
[libvirt PATCH 0/4] po: misc fixes after conversion to weblate
by Daniel P. Berrangé
A bunch of random stuff that was missed in my first series converting
to weblate.
Daniel P. Berrangé (4):
po: update docs to refer to Weblate instead of Zanata
po: remove obsolete zanata push/pull rules
po: remove obsolete zanata config file
po: fix update-po target to take account of libvirt.pot in srcdir
README.rst | 3 ++
docs/contribute.html.in | 4 +-
docs/hacking.rst | 10 ++--
po/Makefile.am | 23 ++-------
po/README.rst | 111 +++++++++++-----------------------------
po/zanata.xml | 7 ---
6 files changed, 46 insertions(+), 112 deletions(-)
delete mode 100644 po/zanata.xml
--
2.26.2
4 years, 9 months
[libvirt PATCH] gitlab-ci: Enable FreeBSD native builds
by Erik Skultety
The runners have already been registered to the libvirt gitlab CI, we
just need to enable building on them. Apart from adding respective CI
job labels, the native job had to be tweaked so that the build dir
inside the git repo is deleted before the build runs to always star with
a clean environment, this results in a NOP on in the container
workloads.
Signed-off-by: Erik Skultety <eskultet(a)redhat.com>
---
.gitlab-ci.yml | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 7113a1283c..33b83b0bb3 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -25,6 +25,7 @@ stages:
before_script:
- *script_variables
script:
+ - rm -rf build
- mkdir build
- cd build
- ../autogen.sh || (cat config.log && exit 1)
@@ -109,6 +110,16 @@ x64-ubuntu-2004:
<<: *native_build_default_job_definition
image: quay.io/libvirt/buildenv-libvirt-ubuntu-2004:latest
+x64-freebsd-11:
+ <<: *native_build_default_job_definition
+ tags:
+ - freebsd-11
+
+x64-freebsd-12:
+ <<: *native_build_default_job_definition
+ tags:
+ - freebsd-12
+
# Cross compiled build jobs
--
2.26.2
4 years, 10 months
[libvirt PATCH] docs: backing chains: fix qemu-img invocation
by Ján Tomko
The example was missing the 'create' command.
Signed-off-by: Ján Tomko <jtomko(a)redhat.com>
Reported-by: Roland Clobus <rclobus(a)rclobus.nl>
---
Pushed as trivial.
docs/kbase/backing_chains.rst | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/kbase/backing_chains.rst b/docs/kbase/backing_chains.rst
index c112f2bc82..c3de37f4d1 100644
--- a/docs/kbase/backing_chains.rst
+++ b/docs/kbase/backing_chains.rst
@@ -120,7 +120,7 @@ means that the **-F** parameter of ``qemu-img`` must always be used.
::
- qemu-img -f qcow2 -F qcow2 -b $BACKING_IMAGE_PATH $IMAGE_PATH
+ qemu-img create -f qcow2 -F qcow2 -b $BACKING_IMAGE_PATH $IMAGE_PATH
Note that if ``$BACKING_IMAGE_PATH`` is relative the path is considered relative to
the location of ``$IMAGE_PATH``.
--
2.25.4
4 years, 10 months
[libvirt PATCH v2 0/3] news: Convert to reStructuredText
by Andrea Bolognani
browse: https://gitlab.com/abologna/libvirt/-/tree/news-convert-cleanup
git fetch: https://gitlab.com/abologna/libvirt.git news-convert-cleanup
Changes since [v1]
* use '*' for all bullet points, regardless of how deep they're
nested;
* patches 1/5 and 2/5 have been pushed.
[v1] https://www.redhat.com/archives/libvir-list/2020-June/msg00061.html
Andrea Bolognani (3):
news: Output reStructuredText for the ASCII version
news: Convert to reStructuredText
news: Add information about old releases
Makefile.am | 22 +-
NEWS.rst | 4077 ++++++++++++++++++++++++++++
docs/Makefile.am | 27 +-
docs/libvirt.css | 15 -
docs/news-2005.html.in | 28 -
docs/news-2006.html.in | 354 ---
docs/news-2007.html.in | 534 ----
docs/news-2008.html.in | 580 ----
docs/news-2009.html.in | 1603 -----------
docs/news-2010.html.in | 2218 ---------------
docs/news-2011.html.in | 3314 -----------------------
docs/news-2012.html.in | 3012 ---------------------
docs/news-2013.html.in | 3675 -------------------------
docs/news-2014.html.in | 3418 ------------------------
docs/news-2015.html.in | 2864 --------------------
docs/news-2016.html.in | 3740 --------------------------
docs/news-ascii.xsl | 69 -
docs/news-html.xsl | 106 -
docs/news.rng | 72 -
docs/news.xml | 5473 --------------------------------------
scripts/reformat-news.py | 102 -
tests/virschematest.c | 2 -
22 files changed, 4089 insertions(+), 31216 deletions(-)
create mode 100644 NEWS.rst
delete mode 100644 docs/news-2005.html.in
delete mode 100644 docs/news-2006.html.in
delete mode 100644 docs/news-2007.html.in
delete mode 100644 docs/news-2008.html.in
delete mode 100644 docs/news-2009.html.in
delete mode 100644 docs/news-2010.html.in
delete mode 100644 docs/news-2011.html.in
delete mode 100644 docs/news-2012.html.in
delete mode 100644 docs/news-2013.html.in
delete mode 100644 docs/news-2014.html.in
delete mode 100644 docs/news-2015.html.in
delete mode 100644 docs/news-2016.html.in
delete mode 100644 docs/news-ascii.xsl
delete mode 100644 docs/news-html.xsl
delete mode 100644 docs/news.rng
delete mode 100644 docs/news.xml
delete mode 100755 scripts/reformat-news.py
--
2.25.4
4 years, 10 months
Handling merge requests from Weblate translation
by Daniel P. Berrangé
The libvirt project is now converted to use Weblate for translation.
Weblate has its own fork of libvirt git repos.
With weblate managing translations, NEVER, under any circumstances
should anyone change the .po files in libvirt.git directly. This will
result in merge conflicts with Weblate that need tedious manual
resolution. Any .po file changes must always be done via the Weblate
UI.
Changes made in the weblate UI are not committed to its fork immediately.
Weblate will wait upto 24 hours before committing. It will keep changes
by each translator as separate commits, and will add SoB lines to them.
When it has commits ready, it opens a merge request in GitLab. If it has
more commits later and the merge request is still open, it will just push
to the pre-existing merge request instead of opening a new one.
What this means is that if we immediately approve & merge a weblate merge
request, it'll likely open a new one the very next day. I don't think we
want to be opening & closing 30 merge requests a month for translations.
Thus I'm suggesting that we leave weblate merge requests open to accumulate
new commits. Only approve & merge them during the freeze period.
Any time we update the libvirt.pot, weblate will msgmerge all the .po files
and submit them back to libvirt. These are going to be quite large commits.
My intention is to only update the libvirt.pot at the time that we start the
release freeze period. This leaves a week to receive new translations, during
which time libvirt strings shouldn't be changing much anyway, since we're
in bugfix only mode.
Regards,
Daniel
--
|: https://berrange.com -o- https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org -o- https://fstop138.berrange.com :|
|: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
4 years, 10 months
[libvirt PATCH] qemu: fix typo s/readaehad/readahead/
by Daniel P. Berrangé
Signed-off-by: Daniel P. Berrangé <berrange(a)redhat.com>
---
Pushed as trivial typo fix
src/qemu/qemu_domain.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
index 10f16e9b3b..3239ac1a52 100644
--- a/src/qemu/qemu_domain.c
+++ b/src/qemu/qemu_domain.c
@@ -5281,7 +5281,7 @@ qemuDomainValidateStorageSource(virStorageSourcePtr src,
src->protocol != VIR_STORAGE_NET_PROTOCOL_FTP &&
src->protocol != VIR_STORAGE_NET_PROTOCOL_FTPS)) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
- _("readaehad is supported only with HTTP(S)/FTP(s) protocols"));
+ _("readahead is supported only with HTTP(S)/FTP(s) protocols"));
return -1;
}
--
2.26.2
4 years, 10 months