[PATCH v2 00/15] qemuBuildThreadContextProps: Prune .node-afinity wrt <emulatorpin/>
by Michal Privoznik
v2 of:
https://listman.redhat.com/archives/libvir-list/2023-March/238536.html
diff to v1:
- Swapped arguments in virNumaCPUSetToNodeset()
- Other small nits
- typos
Michal Prívozník (15):
virnuma: Move virNumaNodesetToCPUset() our of WITH_NUMACTL
virnuma: Introduce virNumaCPUSetToNodeset()
virnumamock: Introduce virNumaGetNodeOfCPU() mock
qemuxml2argvtest: Use virnuma mock
qemuxml2argvdata: Adjust maximum NUMA node used
qemuxml2argvdata: Extend vCPUs placement in
memory-hotplug-dimm-addr.xml
qemuxml2argvmock: Drop virNuma* mocks
qemu: Move cpuset preference evaluation into a separate function
qemu: Fix qemuDomainGetEmulatorPinInfo()
qemuBuildMemoryBackendProps: Join two conditions
qemu: Add @nodemaskRet argument to qemuBuildMemoryBackendProps()
qemu: Add @nodemask argument to qemuBuildThreadContextProps()
qemuBuildThreadContextProps: Prune .node-affinity wrt <emulatorpin/>
docs: Document memory allocation and emulator pinning limitation
NEWS: Document recent thread-context bug fix
NEWS.rst | 7 +
docs/formatdomain.rst | 4 +-
src/libvirt_private.syms | 2 +
src/qemu/qemu_command.c | 90 +++++++----
src/qemu/qemu_command.h | 8 +-
src/qemu/qemu_domain.c | 18 +++
src/qemu/qemu_domain.h | 5 +
src/qemu/qemu_driver.c | 11 +-
src/qemu/qemu_hotplug.c | 2 +-
src/qemu/qemu_process.c | 9 +-
src/util/virnuma.c | 148 ++++++++++++------
src/util/virnuma.h | 5 +-
tests/meson.build | 2 +-
...emory-hotplug-dimm-addr.x86_64-latest.args | 2 +-
.../memory-hotplug-dimm-addr.xml | 2 +-
.../migrate-numa-unaligned.args | 4 +-
.../migrate-numa-unaligned.xml | 4 +-
.../numatune-memnode-restrictive-mode.xml | 4 +-
...-unavailable-restrictive.x86_64-latest.err | 2 +-
...mnode-unavailable-strict.x86_64-latest.err | 2 +-
tests/qemuxml2argvdata/numatune-memnode.args | 4 +-
.../numatune-memnode.x86_64-5.2.0.args | 4 +-
.../numatune-memnode.x86_64-latest.args | 4 +-
tests/qemuxml2argvdata/numatune-memnode.xml | 4 +-
...umatune-static-nodeset-exceed-hostnode.err | 2 +-
tests/qemuxml2argvmock.c | 42 -----
tests/qemuxml2argvtest.c | 5 +-
...memory-hotplug-dimm-addr.x86_64-latest.xml | 2 +-
tests/qemuxml2xmloutdata/numatune-memnode.xml | 4 +-
.../linux-basic/system/cpu/cpu0/node0 | 1 +
.../linux-basic/system/cpu/cpu1/node0 | 1 +
.../linux-basic/system/cpu/cpu10/node2 | 1 +
.../linux-basic/system/cpu/cpu11/node2 | 1 +
.../linux-basic/system/cpu/cpu12/node3 | 1 +
.../linux-basic/system/cpu/cpu13/node3 | 1 +
.../linux-basic/system/cpu/cpu14/node3 | 1 +
.../linux-basic/system/cpu/cpu15/node3 | 1 +
.../linux-basic/system/cpu/cpu2/node0 | 1 +
.../linux-basic/system/cpu/cpu3/node0 | 1 +
.../linux-basic/system/cpu/cpu4/node1 | 1 +
.../linux-basic/system/cpu/cpu5/node1 | 1 +
.../linux-basic/system/cpu/cpu6/node1 | 1 +
.../linux-basic/system/cpu/cpu7/node1 | 1 +
.../linux-basic/system/cpu/cpu8/node2 | 1 +
.../linux-basic/system/cpu/cpu9/node2 | 1 +
.../linux-caches/system/cpu/cpu0/node0 | 1 +
.../linux-caches/system/cpu/cpu1/node0 | 1 +
.../linux-caches/system/cpu/cpu2/node0 | 1 +
.../linux-caches/system/cpu/cpu3/node0 | 1 +
.../linux-caches/system/cpu/cpu4/node0 | 1 +
.../linux-caches/system/cpu/cpu5/node0 | 1 +
.../linux-caches/system/cpu/cpu6/node0 | 1 +
.../linux-caches/system/cpu/cpu7/node0 | 1 +
.../system/cpu/cpu0/node0 | 1 +
.../linux-resctrl/system/cpu/cpu0/node0 | 1 +
.../linux-resctrl/system/cpu/cpu1/node0 | 1 +
.../linux-resctrl/system/cpu/cpu10/node1 | 1 +
.../linux-resctrl/system/cpu/cpu11/node1 | 1 +
.../linux-resctrl/system/cpu/cpu2/node0 | 1 +
.../linux-resctrl/system/cpu/cpu3/node0 | 1 +
.../linux-resctrl/system/cpu/cpu4/node0 | 1 +
.../linux-resctrl/system/cpu/cpu5/node0 | 1 +
.../linux-resctrl/system/cpu/cpu6/node1 | 1 +
.../linux-resctrl/system/cpu/cpu7/node1 | 1 +
.../linux-resctrl/system/cpu/cpu8/node1 | 1 +
.../linux-resctrl/system/cpu/cpu9/node1 | 1 +
tests/virnumamock.c | 42 +++++
67 files changed, 317 insertions(+), 164 deletions(-)
create mode 120000 tests/vircaps2xmldata/linux-basic/system/cpu/cpu0/node0
create mode 120000 tests/vircaps2xmldata/linux-basic/system/cpu/cpu1/node0
create mode 120000 tests/vircaps2xmldata/linux-basic/system/cpu/cpu10/node2
create mode 120000 tests/vircaps2xmldata/linux-basic/system/cpu/cpu11/node2
create mode 120000 tests/vircaps2xmldata/linux-basic/system/cpu/cpu12/node3
create mode 120000 tests/vircaps2xmldata/linux-basic/system/cpu/cpu13/node3
create mode 120000 tests/vircaps2xmldata/linux-basic/system/cpu/cpu14/node3
create mode 120000 tests/vircaps2xmldata/linux-basic/system/cpu/cpu15/node3
create mode 120000 tests/vircaps2xmldata/linux-basic/system/cpu/cpu2/node0
create mode 120000 tests/vircaps2xmldata/linux-basic/system/cpu/cpu3/node0
create mode 120000 tests/vircaps2xmldata/linux-basic/system/cpu/cpu4/node1
create mode 120000 tests/vircaps2xmldata/linux-basic/system/cpu/cpu5/node1
create mode 120000 tests/vircaps2xmldata/linux-basic/system/cpu/cpu6/node1
create mode 120000 tests/vircaps2xmldata/linux-basic/system/cpu/cpu7/node1
create mode 120000 tests/vircaps2xmldata/linux-basic/system/cpu/cpu8/node2
create mode 120000 tests/vircaps2xmldata/linux-basic/system/cpu/cpu9/node2
create mode 120000 tests/vircaps2xmldata/linux-caches/system/cpu/cpu0/node0
create mode 120000 tests/vircaps2xmldata/linux-caches/system/cpu/cpu1/node0
create mode 120000 tests/vircaps2xmldata/linux-caches/system/cpu/cpu2/node0
create mode 120000 tests/vircaps2xmldata/linux-caches/system/cpu/cpu3/node0
create mode 120000 tests/vircaps2xmldata/linux-caches/system/cpu/cpu4/node0
create mode 120000 tests/vircaps2xmldata/linux-caches/system/cpu/cpu5/node0
create mode 120000 tests/vircaps2xmldata/linux-caches/system/cpu/cpu6/node0
create mode 120000 tests/vircaps2xmldata/linux-caches/system/cpu/cpu7/node0
create mode 120000 tests/vircaps2xmldata/linux-resctrl-skx-twocaches/system/cpu/cpu0/node0
create mode 120000 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu0/node0
create mode 120000 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu1/node0
create mode 120000 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu10/node1
create mode 120000 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu11/node1
create mode 120000 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu2/node0
create mode 120000 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu3/node0
create mode 120000 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu4/node0
create mode 120000 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu5/node0
create mode 120000 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu6/node1
create mode 120000 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu7/node1
create mode 120000 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu8/node1
create mode 120000 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu9/node1
--
2.39.2
1 year, 9 months
[PATCH] qemu_alias: Fix backcompat console alias generation
by Michal Privoznik
We have this crazy backwards compatibility when it comes to
serial and console devices. Basically, in same cases the very
first <console/> is just an alias to the very first <serial/>
device. This is to be seen at various places:
1) virDomainDefFormatInternalSetRootName() - when generating
domain XML, the <console/> configuration is basically ignored
and corresponding <serial/> config is formatted,
2) virDomainDefAddConsoleCompat() - which adds a copy of
<serial/> or <console/> into virDomainDef in post parse.
And when talking to QEMU we need a special handling too, because
while <serial/> is generated on the cmd line, the <console/> is
not. And in a lot of place we get it right. Except for generating
device aliases. On domain startup the 'expected' happens and
devices get "serial0" and "console0" aliases, correspondingly.
This ends up in the status XML too. But due to aforementioned
trick when formatting domain XML, "serial0" ends up in both
'virsh dumpxml' and the status XML. But internally, both devices
have different alias. Therefore, detaching the device using
<console/> fails as qemuDomainDetachDeviceChr() tries to detach
"console0".
After the daemon is restarted and status XML is parsed, then
everything works suddenly. This is because in the status XML both
devices have the same alias.
Let's generate correct alias from the beginning.
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2156300
Signed-off-by: Michal Privoznik <mprivozn(a)redhat.com>
---
src/qemu/qemu_alias.c | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/src/qemu/qemu_alias.c b/src/qemu/qemu_alias.c
index a9809797d5..05d25da93d 100644
--- a/src/qemu/qemu_alias.c
+++ b/src/qemu/qemu_alias.c
@@ -90,6 +90,18 @@ qemuAssignDeviceChrAlias(virDomainDef *def,
if (chr->info.alias)
return 0;
+ /* Some crazy backcompat for consoles. Look into
+ * virDomainDefAddConsoleCompat() for more explanation. */
+ if (chr->deviceType == VIR_DOMAIN_CHR_DEVICE_TYPE_CONSOLE &&
+ chr->targetType == VIR_DOMAIN_CHR_CONSOLE_TARGET_TYPE_SERIAL &&
+ def->os.type == VIR_DOMAIN_OSTYPE_HVM &&
+ def->consoles[0] == chr &&
+ def->nserials &&
+ def->serials[0]->info.alias) {
+ chr->info.alias = g_strdup(def->serials[0]->info.alias);
+ return 0;
+ }
+
switch ((virDomainChrDeviceType)chr->deviceType) {
case VIR_DOMAIN_CHR_DEVICE_TYPE_PARALLEL:
prefix = "parallel";
--
2.39.2
1 year, 9 months
[libvirt PATCH 0/2] passt-related patches
by Andrea Bolognani
Andrea Bolognani (2):
rpm: Recommend passt-selinux
news: Update for passt on SELinux/AppArmor support
NEWS.rst | 6 ++++++
libvirt.spec.in | 1 +
2 files changed, 7 insertions(+)
--
2.39.2
1 year, 9 months
[PATCH v2 0/6] Use 'download.libvirt.org' on our webpage
by Peter Krempa
Note this patchset now depends on:
https://gitlab.com/libvirt/libvirt-java/-/merge_requests/36
The above MR exposes freshly generated javadoc via gitlab pages.
v2:
- point to freshly generated javadoc
- drop ocaml patch
- add patch removing libvirt-csharp releases
- use pkg.go.dev instead of gitlab
Peter Krempa (6):
docs: java: Clean up links to source code
docs: downloads: Replace 'libvirt.org/sources' by
'download.libvirt.org'
spec: Use 'download.libvirt.org' as source server
docs: downloads: Drop link to sources of 'consoleproxy'
docs: downloads: Don't mention releases directory of libvirt-csharp
docs: downloads: Point to pkg.go.dev for go module releases
docs/downloads.rst | 38 +++++++++++++++++++-------------------
docs/java.rst | 11 +++++------
libvirt.spec.in | 2 +-
3 files changed, 25 insertions(+), 26 deletions(-)
--
2.39.2
1 year, 9 months
[PATCH 0/6] Use 'download.libvirt.org' on our webpage
by Peter Krempa
Peter Krempa (6):
docs: java: Clean up links to source code
docs: downloads: Replace 'libvirt.org/sources' by
'download.libvirt.org'
spec: Use 'download.libvirt.org' as source server
docs: downloads: Change sources link for libvirt-ocaml
docs: downloads: Drop link to sources of 'consoleproxy'
docs: downloads: Point to gitlab for go module sources
docs/downloads.rst | 39 ++++++++++++++++++++-------------------
docs/java.rst | 9 ++++-----
libvirt.spec.in | 2 +-
3 files changed, 25 insertions(+), 25 deletions(-)
--
2.39.2
1 year, 9 months
[PATCH] NEWS: Mention support for custom UEFI firmwar paths in Xen
by Jim Fehlig
Signed-off-by: Jim Fehlig <jfehlig(a)suse.com>
---
NEWS.rst | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/NEWS.rst b/NEWS.rst
index 490886beb4..0bff782368 100644
--- a/NEWS.rst
+++ b/NEWS.rst
@@ -35,6 +35,11 @@ v9.2.0 (unreleased)
when the domain is defined, and its results are stored in the domain XML
to be reused, unchanged, for all subsequent boots.
+ * xen: Support custom UEFI firmware paths
+
+ The Xen libxl driver now supports specifying a custom UEFI firmware path.
+ Previously the Xen default was used in all cases.
+
* **Bug fixes**
* qemu: Fix validation of the HPET timer
--
2.39.2
1 year, 9 months
[libvirt PATCH] qemu: use stop reason as 'extra' field
by Mike Pontillo
This adds the reason the domain stopped to the 'extra' field, which
will be sent to the 'qemu' hook script (if defined).
Signed-off-by: Mike Pontillo <mpontillo(a)digitalocean.com>
---
Our hook processor often needs to know the reason why a guest stopped. I
am propsing this change in case other hook processing implementations
could also benefit from this information.
---
src/qemu/qemu_process.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
index be418ad8e6..425b73c37e 100644
--- a/src/qemu/qemu_process.c
+++ b/src/qemu/qemu_process.c
@@ -8432,7 +8432,7 @@ void qemuProcessStop(virQEMUDriver *driver,
/* we can't stop the operation even if the script raised an error */
ignore_value(virHookCall(VIR_HOOK_DRIVER_QEMU, vm->def->name,
VIR_HOOK_QEMU_OP_STOPPED, VIR_HOOK_SUBOP_END,
- NULL, xml, NULL));
+ virDomainShutoffReasonTypeToString(reason), xml, NULL));
}
/* Reset Security Labels unless caller don't want us to */
--
2.34.1
1 year, 9 months
[PATCH 00/14] qemuBuildThreadContextProps: Prune .node-afinity wrt <emulatorpin/>
by Michal Privoznik
See 12/14 for explanation and seeing the fix in action.
Michal Prívozník (14):
virnuma: Move virNumaNodesetToCPUset() our of WITH_NUMACTL
virnuma: Introduce virNumaCPUSetToNodeset()
virnumamock: Introduce virNumaGetNodeOfCPU() mock
qemuxml2argvtest: Use virnuma mock
qemuxml2argvdata: Adjust maximum NUMA node used
qemuxml2argvdata: Extend vCPUs placement in
memory-hotplug-dimm-addr.xml
qemuxml2argvmock: Drop virNuma* mocks
qemu: Move cpuset preference evaluation into a separate function
qemu: Fix qemuDomainGetEmulatorPinInfo()
qemu: Add @nodemaskRet argument to qemuBuildMemoryBackendProps()
qemu: Add @nodemask argument to qemuBuildThreadContextProps()
qemuBuildThreadContextProps: Prune .node-afinity wrt <emulatorpin/>
docs: Document memory allocation and emulator pinning limitation
NEWS: Document recent thread-context bug fix
NEWS.rst | 7 +
docs/formatdomain.rst | 4 +-
src/libvirt_private.syms | 2 +
src/qemu/qemu_command.c | 90 +++++++----
src/qemu/qemu_command.h | 8 +-
src/qemu/qemu_domain.c | 18 +++
src/qemu/qemu_domain.h | 5 +
src/qemu/qemu_driver.c | 11 +-
src/qemu/qemu_hotplug.c | 2 +-
src/qemu/qemu_process.c | 9 +-
src/util/virnuma.c | 148 ++++++++++++------
src/util/virnuma.h | 5 +-
tests/meson.build | 2 +-
...emory-hotplug-dimm-addr.x86_64-latest.args | 2 +-
.../memory-hotplug-dimm-addr.xml | 2 +-
.../migrate-numa-unaligned.args | 4 +-
.../migrate-numa-unaligned.xml | 4 +-
.../numatune-memnode-restrictive-mode.xml | 4 +-
...-unavailable-restrictive.x86_64-latest.err | 2 +-
...mnode-unavailable-strict.x86_64-latest.err | 2 +-
tests/qemuxml2argvdata/numatune-memnode.args | 4 +-
.../numatune-memnode.x86_64-5.2.0.args | 4 +-
.../numatune-memnode.x86_64-latest.args | 4 +-
tests/qemuxml2argvdata/numatune-memnode.xml | 4 +-
...umatune-static-nodeset-exceed-hostnode.err | 2 +-
tests/qemuxml2argvmock.c | 41 -----
tests/qemuxml2argvtest.c | 5 +-
...memory-hotplug-dimm-addr.x86_64-latest.xml | 2 +-
tests/qemuxml2xmloutdata/numatune-memnode.xml | 4 +-
.../linux-basic/system/cpu/cpu0/node0 | 1 +
.../linux-basic/system/cpu/cpu1/node0 | 1 +
.../linux-basic/system/cpu/cpu10/node2 | 1 +
.../linux-basic/system/cpu/cpu11/node2 | 1 +
.../linux-basic/system/cpu/cpu12/node3 | 1 +
.../linux-basic/system/cpu/cpu13/node3 | 1 +
.../linux-basic/system/cpu/cpu14/node3 | 1 +
.../linux-basic/system/cpu/cpu15/node3 | 1 +
.../linux-basic/system/cpu/cpu2/node0 | 1 +
.../linux-basic/system/cpu/cpu3/node0 | 1 +
.../linux-basic/system/cpu/cpu4/node1 | 1 +
.../linux-basic/system/cpu/cpu5/node1 | 1 +
.../linux-basic/system/cpu/cpu6/node1 | 1 +
.../linux-basic/system/cpu/cpu7/node1 | 1 +
.../linux-basic/system/cpu/cpu8/node2 | 1 +
.../linux-basic/system/cpu/cpu9/node2 | 1 +
.../linux-caches/system/cpu/cpu0/node0 | 1 +
.../linux-caches/system/cpu/cpu1/node0 | 1 +
.../linux-caches/system/cpu/cpu2/node0 | 1 +
.../linux-caches/system/cpu/cpu3/node0 | 1 +
.../linux-caches/system/cpu/cpu4/node0 | 1 +
.../linux-caches/system/cpu/cpu5/node0 | 1 +
.../linux-caches/system/cpu/cpu6/node0 | 1 +
.../linux-caches/system/cpu/cpu7/node0 | 1 +
.../system/cpu/cpu0/node0 | 1 +
.../linux-resctrl/system/cpu/cpu0/node0 | 1 +
.../linux-resctrl/system/cpu/cpu1/node0 | 1 +
.../linux-resctrl/system/cpu/cpu10/node1 | 1 +
.../linux-resctrl/system/cpu/cpu11/node1 | 1 +
.../linux-resctrl/system/cpu/cpu2/node0 | 1 +
.../linux-resctrl/system/cpu/cpu3/node0 | 1 +
.../linux-resctrl/system/cpu/cpu4/node0 | 1 +
.../linux-resctrl/system/cpu/cpu5/node0 | 1 +
.../linux-resctrl/system/cpu/cpu6/node1 | 1 +
.../linux-resctrl/system/cpu/cpu7/node1 | 1 +
.../linux-resctrl/system/cpu/cpu8/node1 | 1 +
.../linux-resctrl/system/cpu/cpu9/node1 | 1 +
tests/virnumamock.c | 42 +++++
67 files changed, 317 insertions(+), 163 deletions(-)
create mode 120000 tests/vircaps2xmldata/linux-basic/system/cpu/cpu0/node0
create mode 120000 tests/vircaps2xmldata/linux-basic/system/cpu/cpu1/node0
create mode 120000 tests/vircaps2xmldata/linux-basic/system/cpu/cpu10/node2
create mode 120000 tests/vircaps2xmldata/linux-basic/system/cpu/cpu11/node2
create mode 120000 tests/vircaps2xmldata/linux-basic/system/cpu/cpu12/node3
create mode 120000 tests/vircaps2xmldata/linux-basic/system/cpu/cpu13/node3
create mode 120000 tests/vircaps2xmldata/linux-basic/system/cpu/cpu14/node3
create mode 120000 tests/vircaps2xmldata/linux-basic/system/cpu/cpu15/node3
create mode 120000 tests/vircaps2xmldata/linux-basic/system/cpu/cpu2/node0
create mode 120000 tests/vircaps2xmldata/linux-basic/system/cpu/cpu3/node0
create mode 120000 tests/vircaps2xmldata/linux-basic/system/cpu/cpu4/node1
create mode 120000 tests/vircaps2xmldata/linux-basic/system/cpu/cpu5/node1
create mode 120000 tests/vircaps2xmldata/linux-basic/system/cpu/cpu6/node1
create mode 120000 tests/vircaps2xmldata/linux-basic/system/cpu/cpu7/node1
create mode 120000 tests/vircaps2xmldata/linux-basic/system/cpu/cpu8/node2
create mode 120000 tests/vircaps2xmldata/linux-basic/system/cpu/cpu9/node2
create mode 120000 tests/vircaps2xmldata/linux-caches/system/cpu/cpu0/node0
create mode 120000 tests/vircaps2xmldata/linux-caches/system/cpu/cpu1/node0
create mode 120000 tests/vircaps2xmldata/linux-caches/system/cpu/cpu2/node0
create mode 120000 tests/vircaps2xmldata/linux-caches/system/cpu/cpu3/node0
create mode 120000 tests/vircaps2xmldata/linux-caches/system/cpu/cpu4/node0
create mode 120000 tests/vircaps2xmldata/linux-caches/system/cpu/cpu5/node0
create mode 120000 tests/vircaps2xmldata/linux-caches/system/cpu/cpu6/node0
create mode 120000 tests/vircaps2xmldata/linux-caches/system/cpu/cpu7/node0
create mode 120000 tests/vircaps2xmldata/linux-resctrl-skx-twocaches/system/cpu/cpu0/node0
create mode 120000 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu0/node0
create mode 120000 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu1/node0
create mode 120000 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu10/node1
create mode 120000 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu11/node1
create mode 120000 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu2/node0
create mode 120000 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu3/node0
create mode 120000 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu4/node0
create mode 120000 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu5/node0
create mode 120000 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu6/node1
create mode 120000 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu7/node1
create mode 120000 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu8/node1
create mode 120000 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu9/node1
--
2.39.2
1 year, 9 months
[libvirt PATCH] util: virXMLValidatorInit: improve translatable errors
by Ján Tomko
In some translations, the RNG initials were mistranslated
as a random number generator.
Spell it out as RelaxNG to make it clearer.
Include the word 'schema' and quotes around the filename.
Signed-off-by: Ján Tomko <jtomko(a)redhat.com>
---
src/util/virxml.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/util/virxml.c b/src/util/virxml.c
index af4be4e443..c0789c062c 100644
--- a/src/util/virxml.c
+++ b/src/util/virxml.c
@@ -1563,7 +1563,7 @@ virXMLValidatorInit(const char *schemafile)
if (!(validator->rngParser =
xmlRelaxNGNewParserCtxt(validator->schemafile))) {
virReportError(VIR_ERR_INTERNAL_ERROR,
- _("Unable to create RNG parser for %s"),
+ _("Unable to create RelaxNG parser for schema '%s'"),
validator->schemafile);
return NULL;
}
@@ -1575,7 +1575,7 @@ virXMLValidatorInit(const char *schemafile)
if (!(validator->rng = xmlRelaxNGParse(validator->rngParser))) {
virReportError(VIR_ERR_INTERNAL_ERROR,
- _("Unable to parse RNG %s: %s"),
+ _("Unable to parse RelaxNG schema '%s': %s"),
validator->schemafile,
virBufferCurrentContent(&validator->buf));
return NULL;
@@ -1583,7 +1583,7 @@ virXMLValidatorInit(const char *schemafile)
if (!(validator->rngValid = xmlRelaxNGNewValidCtxt(validator->rng))) {
virReportError(VIR_ERR_INTERNAL_ERROR,
- _("Unable to create RNG validation context %s"),
+ _("Unable to create RelaxNG validation context for schema '%s'"),
validator->schemafile);
return NULL;
}
--
2.39.2
1 year, 9 months