[PATCH v4 0/6] NVDIMM suport for pSeries guests
by Daniel Henrique Barboza
changes in v4:
- moved label size requirement from virDomainMemoryDefParseXML()
to virDomainMemoryDefValidate()
Previous version:
https://www.redhat.com/archives/libvir-list/2020-March/msg00769.html
Daniel Henrique Barboza (6):
qemu: capabilities: update qemu-5.0.0 capabilities for ppc64
conf: Introduce optional 'uuid' element for NVDIMM memory
formatdomain.html.in: document the new 'uuid' NVDIMM element
conf, qemu: enable NVDIMM support for ppc64
formatdomain.html.in: document NVDIMM 'label' requirement for pSeries
news.xml: document the new NVDIMM support for Pseries guests
docs/formatdomain.html.in | 24 +-
docs/news.xml | 11 +
docs/schemas/domaincommon.rng | 5 +
src/conf/domain_conf.c | 49 +-
src/conf/domain_conf.h | 3 +
src/qemu/qemu_command.c | 7 +
src/qemu/qemu_domain.c | 63 +-
src/qemu/qemu_domain.h | 4 +-
src/qemu/qemu_hotplug.c | 6 +-
tests/domaincapsdata/qemu_5.0.0.ppc64.xml | 2 +-
.../caps_5.0.0.ppc64.replies | 10949 +++++++++-------
.../qemucapabilitiesdata/caps_5.0.0.ppc64.xml | 1216 +-
...default-video-type-ppc64.ppc64-latest.args | 2 -
.../memory-hotplug-nvdimm-ppc64.args | 32 +
...ory-hotplug-nvdimm-ppc64.ppc64-latest.args | 36 +
.../memory-hotplug-nvdimm-ppc64.xml | 50 +
...ault-cpu-kvm-pseries-2.7.ppc64-latest.args | 10 +-
...ault-cpu-kvm-pseries-3.1.ppc64-latest.args | 10 +-
...ault-cpu-kvm-pseries-4.2.ppc64-latest.args | 10 +-
...ault-cpu-tcg-pseries-2.7.ppc64-latest.args | 10 +-
...ault-cpu-tcg-pseries-3.1.ppc64-latest.args | 10 +-
...ault-cpu-tcg-pseries-4.2.ppc64-latest.args | 10 +-
.../ppc64-pseries-graphics.ppc64-latest.args | 10 +-
.../ppc64-pseries-headless.ppc64-latest.args | 10 +-
.../tpm-emulator-spapr.ppc64-latest.args | 9 +-
tests/qemuxml2argvtest.c | 1 +
.../memory-hotplug-nvdimm-ppc64.xml | 50 +
tests/qemuxml2xmltest.c | 2 +
28 files changed, 7028 insertions(+), 5573 deletions(-)
create mode 100644 tests/qemuxml2argvdata/memory-hotplug-nvdimm-ppc64.args
create mode 100644 tests/qemuxml2argvdata/memory-hotplug-nvdimm-ppc64.ppc64-latest.args
create mode 100644 tests/qemuxml2argvdata/memory-hotplug-nvdimm-ppc64.xml
create mode 100644 tests/qemuxml2xmloutdata/memory-hotplug-nvdimm-ppc64.xml
--
2.25.1
4 years, 9 months
Propose to extend the capability of arm cpu driver
by Zhenyu Zheng
Hello Libvirt,
With more and more ARM servers on the market and increasing amount of
users, we got reported alot that Libvirt cannot provide as much function on
ARM platform as on other platforms(mainly x86), some basic founctions are
missing, such as showing cpu model details and features using ``virsh
capabilities``, comparing cpus etc.
So I would like to propose to extend the capability of ARM cpu driver.
Since I'm quite new here, I searched through the mailing list and did not
find much information on this, so I would like to know that will this be
something that I could work on?
BR,
Zhenyu Zheng
4 years, 9 months
TCK regression from blockdev change
by Jim Fehlig
Hi all,
I noticed libvirt-tck test 207-disk-media-change.t is failing with 6.1.0,
although I _think_ the failure has actually been around since the change to
using blockdev in the qemu driver. The test essentially creates a minimal domain
with a cdrom disk device, then calls attach_device a few times, changing the
<source> of the disk. The last attach_device uses the same <source> as when the
domain was created and expects the initial and final XML to be the same. For
reference, here's a link to the test
https://libvirt.org/git/?p=libvirt-tck.git;a=blob;f=scripts/domain/207-di...
However the test fails since the 'index' attribute of the <source> element is
not the same between initial XML (index='1') and final XML (index='5'). Indeed
with each attach operation the index is incremented. Should libvirt be fixed to
always provide an index of 1 for this disk config? Or should we adjust the test
case? I'm not so familiar with this functionality but I lean towards the former
since attaching a disk with a missing source (no media) results in odd looking
disk config
<disk type='file' device='cdrom'>
<driver name='qemu' type='raw' cache='none'/>
<source index='4'/>
<target dev='hdc' bus='ide'/>
<readonly/>
<alias name='ide0-1-0'/>
<address type='drive' controller='0' bus='1' target='0' unit='0'/>
</disk>
Regards,
Jim
4 years, 9 months
[PATCH v2 0/5] NVDIMM suport for pSeries guests
by Daniel Henrique Barboza
changes in v2, all of them affecting just pSeries guests:
- added 'label' requirement
- added code to align down the NVDIMM device
previous version: https://www.redhat.com/archives/libvir-list/2020-March/msg00165.html
This patch series adds NVDIMM suport for ppc64 guests,
which consists on adding an extra 'uuid' element in
the nvdimm command line and the target label size must
always be provided in the memory definition.
No changes were made in the existing NVDIMM support for
x86 and other archs.
Daniel Henrique Barboza (5):
conf: Introduce optional 'uuid' element for NVDIMM memory
formatdomain.html.in: document the new 'uuid' NVDIMM element
conf, qemu: enable NVDIMM support for ppc64
formatdomain.html.in: document NVDIMM 'label' requirement for pSeries
news.xml: document the new NVDIMM support for Pseries guests
docs/formatdomain.html.in | 24 +++++++--
docs/news.xml | 11 ++++
docs/schemas/domaincommon.rng | 5 ++
src/conf/domain_conf.c | 44 ++++++++++++++--
src/conf/domain_conf.h | 3 ++
src/qemu/qemu_command.c | 7 +++
src/qemu/qemu_domain.c | 47 +++++++++++++++--
.../memory-hotplug-nvdimm-ppc64.args | 32 ++++++++++++
.../memory-hotplug-nvdimm-ppc64.xml | 50 +++++++++++++++++++
tests/qemuxml2argvtest.c | 4 ++
.../memory-hotplug-nvdimm-ppc64.xml | 50 +++++++++++++++++++
tests/qemuxml2xmltest.c | 2 +
12 files changed, 268 insertions(+), 11 deletions(-)
create mode 100644 tests/qemuxml2argvdata/memory-hotplug-nvdimm-ppc64.args
create mode 100644 tests/qemuxml2argvdata/memory-hotplug-nvdimm-ppc64.xml
create mode 100644 tests/qemuxml2xmloutdata/memory-hotplug-nvdimm-ppc64.xml
--
2.24.1
4 years, 9 months
[libvirt PATCH 0/4] qemu: virtiofs fixes
by Ján Tomko
Shorten some paths and kill the whole process group instead
of just the parent.
Ján Tomko (4):
qemu: virtiofs: kill the whole process group when stopping
qemu: virtiofs: shorten pid filename
qemu: virtiofs: shorten socket filename
qemu: virtiofs: use a .log.fs suffix for logs
src/qemu/qemu_virtiofs.c | 14 +++++---------
1 file changed, 5 insertions(+), 9 deletions(-)
--
2.25.1
4 years, 9 months
[PATCH] news: Document removal of support for .ini style of comments
by Michal Privoznik
In previous patches virKeyFile was replaced with its GLib
counterpart which created an incompatible change: comments can
now begin only with a number sign (#). While this won't probably
affect anyone, mention it in the release notes.
Signed-off-by: Michal Privoznik <mprivozn(a)redhat.com>
---
docs/news.xml | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/docs/news.xml b/docs/news.xml
index ae4ee444d0..3de0a4945f 100644
--- a/docs/news.xml
+++ b/docs/news.xml
@@ -45,6 +45,19 @@
<release version="v6.2.0" date="unreleased">
<section title="New features">
</section>
+ <section title="Removed features">
+ <change>
+ <summary>
+ Removed support for INI style of comments
+ </summary>
+ <description>
+ With switching of our internal code to GLib, parsing of config files
+ is handed over to GLib which does not support <code>INI</code> style
+ of comments starting with a semicolon (<code>;</code>). Use number
+ sign (<code>#</code>) instead.
+ </description>
+ </change>
+ </section>
<section title="Improvements">
</section>
<section title="Bug fixes">
--
2.24.1
4 years, 9 months
Virtualbox Support for 6.x ?
by CDT CDT
Hello all,
TL;DR: Is there any libvirt update regarding VBox 6.x planned until July
2020?
I tried using libvirt 4.x / virsh with Virtualbox 6.1.4, which seem to not
work. The output of virsh -V tells me that hypervisor should be able for
that:
Compiled with support for:
Hypervisors: … VirtualBox …
If I try to connect to a vbox session I get following error:
error: failed to connect to the hypervisor
error: internal error: unable to initialize VirtualBox driver API
I already saw from different threads messages like this:
libvirt version: 5.10.0
Libvirt doesn't support VirtualBox API version 6001000
regarding the libvirt changelog, only Virtualbox 5.2 is officially
supported. Unfortunately, the support/maintenance for Virtualbox 5.2. ends
in July 2020. Is there any libvirt update regarding VBox 6.x planned until
July 2020?
And is following combination in general possible: Libvirt + VBox + Windows
Guest/VM ?
Best regards
Emanuel
4 years, 9 months
[libvirt PATCH 0/4] cpu_map: Add more -noTSX x86 CPU models
by Jiri Denemark
Christian Ehrhardt (1):
cpu_map: Add more -noTSX x86 CPU models
Jiri Denemark (3):
cpu_map: Add <decode> element to x86 CPU model definitions
cpu_x86: Honor CPU models' <decode> element
cpu_map: Don't use new noTSX models for host-model CPUs
src/cpu/cpu_x86.c | 65 ++++++++++++-
src/cpu_map/Makefile.inc.am | 5 +
src/cpu_map/index.xml | 5 +
src/cpu_map/x86_486.xml | 1 +
src/cpu_map/x86_Broadwell-IBRS.xml | 1 +
src/cpu_map/x86_Broadwell-noTSX-IBRS.xml | 1 +
src/cpu_map/x86_Broadwell-noTSX.xml | 1 +
src/cpu_map/x86_Broadwell.xml | 1 +
src/cpu_map/x86_Cascadelake-Server-noTSX.xml | 79 ++++++++++++++++
src/cpu_map/x86_Cascadelake-Server.xml | 1 +
src/cpu_map/x86_Conroe.xml | 1 +
src/cpu_map/x86_Dhyana.xml | 1 +
src/cpu_map/x86_EPYC-IBPB.xml | 1 +
src/cpu_map/x86_EPYC.xml | 1 +
src/cpu_map/x86_Haswell-IBRS.xml | 1 +
src/cpu_map/x86_Haswell-noTSX-IBRS.xml | 1 +
src/cpu_map/x86_Haswell-noTSX.xml | 1 +
src/cpu_map/x86_Haswell.xml | 1 +
src/cpu_map/x86_Icelake-Client-noTSX.xml | 82 +++++++++++++++++
src/cpu_map/x86_Icelake-Client.xml | 1 +
src/cpu_map/x86_Icelake-Server-noTSX.xml | 91 +++++++++++++++++++
src/cpu_map/x86_Icelake-Server.xml | 1 +
src/cpu_map/x86_IvyBridge-IBRS.xml | 1 +
src/cpu_map/x86_IvyBridge.xml | 1 +
src/cpu_map/x86_Nehalem-IBRS.xml | 1 +
src/cpu_map/x86_Nehalem.xml | 1 +
src/cpu_map/x86_Opteron_G1.xml | 1 +
src/cpu_map/x86_Opteron_G2.xml | 1 +
src/cpu_map/x86_Opteron_G3.xml | 1 +
src/cpu_map/x86_Opteron_G4.xml | 1 +
src/cpu_map/x86_Opteron_G5.xml | 1 +
src/cpu_map/x86_Penryn.xml | 1 +
src/cpu_map/x86_SandyBridge-IBRS.xml | 1 +
src/cpu_map/x86_SandyBridge.xml | 1 +
src/cpu_map/x86_Skylake-Client-IBRS.xml | 1 +
src/cpu_map/x86_Skylake-Client-noTSX-IBRS.xml | 74 +++++++++++++++
src/cpu_map/x86_Skylake-Client.xml | 1 +
src/cpu_map/x86_Skylake-Server-IBRS.xml | 1 +
src/cpu_map/x86_Skylake-Server-noTSX-IBRS.xml | 76 ++++++++++++++++
src/cpu_map/x86_Skylake-Server.xml | 1 +
src/cpu_map/x86_Westmere-IBRS.xml | 1 +
src/cpu_map/x86_Westmere.xml | 1 +
src/cpu_map/x86_athlon.xml | 1 +
src/cpu_map/x86_core2duo.xml | 1 +
src/cpu_map/x86_coreduo.xml | 1 +
src/cpu_map/x86_cpu64-rhel5.xml | 1 +
src/cpu_map/x86_cpu64-rhel6.xml | 1 +
src/cpu_map/x86_kvm32.xml | 1 +
src/cpu_map/x86_kvm64.xml | 1 +
src/cpu_map/x86_n270.xml | 1 +
src/cpu_map/x86_pentium.xml | 1 +
src/cpu_map/x86_pentium2.xml | 1 +
src/cpu_map/x86_pentium3.xml | 1 +
src/cpu_map/x86_pentiumpro.xml | 1 +
src/cpu_map/x86_phenom.xml | 1 +
src/cpu_map/x86_qemu32.xml | 1 +
src/cpu_map/x86_qemu64.xml | 1 +
.../x86_64-cpuid-Core-i7-8550U-host.xml | 11 +--
.../domaincapsdata/qemu_4.2.0-q35.x86_64.xml | 5 +
.../domaincapsdata/qemu_4.2.0-tcg.x86_64.xml | 5 +
tests/domaincapsdata/qemu_4.2.0.x86_64.xml | 5 +
.../domaincapsdata/qemu_5.0.0-q35.x86_64.xml | 5 +
.../domaincapsdata/qemu_5.0.0-tcg.x86_64.xml | 5 +
tests/domaincapsdata/qemu_5.0.0.x86_64.xml | 5 +
64 files changed, 552 insertions(+), 15 deletions(-)
create mode 100644 src/cpu_map/x86_Cascadelake-Server-noTSX.xml
create mode 100644 src/cpu_map/x86_Icelake-Client-noTSX.xml
create mode 100644 src/cpu_map/x86_Icelake-Server-noTSX.xml
create mode 100644 src/cpu_map/x86_Skylake-Client-noTSX-IBRS.xml
create mode 100644 src/cpu_map/x86_Skylake-Server-noTSX-IBRS.xml
--
2.25.1
4 years, 9 months
[PATCH v2 1/2] util: authconfig: use g_key_file_*
by Rafael Fonseca
Replace libvirt's virKeyFile by glib's GKeyFile.
Signed-off-by: Rafael Fonseca <r4f4rfs(a)gmail.com>
---
src/util/virauthconfig.c | 25 +++++++++++--------------
1 file changed, 11 insertions(+), 14 deletions(-)
diff --git a/src/util/virauthconfig.c b/src/util/virauthconfig.c
index fd846ddd4b..473b4c76d6 100644
--- a/src/util/virauthconfig.c
+++ b/src/util/virauthconfig.c
@@ -29,7 +29,7 @@
#include "viralloc.h"
struct _virAuthConfig {
- virKeyFilePtr keyfile;
+ GKeyFile *keyfile;
char *path;
};
@@ -46,10 +46,10 @@ virAuthConfigPtr virAuthConfigNew(const char *path)
auth->path = g_strdup(path);
- if (!(auth->keyfile = virKeyFileNew()))
+ if (!(auth->keyfile = g_key_file_new()))
goto error;
- if (virKeyFileLoadFile(auth->keyfile, path) < 0)
+ if (!g_key_file_load_from_file(auth->keyfile, path, 0, NULL))
goto error;
return auth;
@@ -71,10 +71,10 @@ virAuthConfigPtr virAuthConfigNewData(const char *path,
auth->path = g_strdup(path);
- if (!(auth->keyfile = virKeyFileNew()))
+ if (!(auth->keyfile = g_key_file_new()))
goto error;
- if (virKeyFileLoadData(auth->keyfile, path, data, len) < 0)
+ if (!g_key_file_load_from_data(auth->keyfile, data, len, 0, NULL))
goto error;
return auth;
@@ -90,7 +90,7 @@ void virAuthConfigFree(virAuthConfigPtr auth)
if (!auth)
return;
- virKeyFileFree(auth->keyfile);
+ g_key_file_free(auth->keyfile);
VIR_FREE(auth->path);
VIR_FREE(auth);
}
@@ -115,15 +115,15 @@ int virAuthConfigLookup(virAuthConfigPtr auth,
authgroup = g_strdup_printf("auth-%s-%s", service, hostname);
- if (!virKeyFileHasGroup(auth->keyfile, authgroup)) {
+ if (!g_key_file_has_group(auth->keyfile, authgroup)) {
VIR_FREE(authgroup);
authgroup = g_strdup_printf("auth-%s-%s", service, "default");
}
- if (!virKeyFileHasGroup(auth->keyfile, authgroup))
+ if (!g_key_file_has_group(auth->keyfile, authgroup))
return 0;
- if (!(authcred = virKeyFileGetValueString(auth->keyfile, authgroup, "credentials"))) {
+ if (!(authcred = g_key_file_get_string(auth->keyfile, authgroup, "credentials", NULL))) {
virReportError(VIR_ERR_CONF_SYNTAX,
_("Missing item 'credentials' in group '%s' in '%s'"),
authgroup, auth->path);
@@ -132,17 +132,14 @@ int virAuthConfigLookup(virAuthConfigPtr auth,
credgroup = g_strdup_printf("credentials-%s", authcred);
- if (!virKeyFileHasGroup(auth->keyfile, credgroup)) {
+ if (!g_key_file_has_group(auth->keyfile, credgroup)) {
virReportError(VIR_ERR_CONF_SYNTAX,
_("Missing group 'credentials-%s' referenced from group '%s' in '%s'"),
authcred, authgroup, auth->path);
return -1;
}
- if (!virKeyFileHasValue(auth->keyfile, credgroup, credname))
- return 0;
-
- *value = virKeyFileGetValueString(auth->keyfile, credgroup, credname);
+ *value = g_key_file_get_string(auth->keyfile, credgroup, credname, NULL);
return 0;
}
--
2.25.1
4 years, 9 months
[libvirt PATCH] api: disallow virDomainAgentSetResponseTimeout() on read-only connections
by Jonathon Jongsma
This function changes the amount of time that libvirt waits for a
response from the guest agent for all guest agent commands. Since this
is a configuration change, it should not be allowed on read-only
connections.
Signed-off-by: Jonathon Jongsma <jjongsma(a)redhat.com>
---
src/libvirt-domain.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/src/libvirt-domain.c b/src/libvirt-domain.c
index 65813b68cc..a12809c2d5 100644
--- a/src/libvirt-domain.c
+++ b/src/libvirt-domain.c
@@ -12576,6 +12576,8 @@ virDomainAgentSetResponseTimeout(virDomainPtr domain,
virCheckDomainReturn(domain, -1);
conn = domain->conn;
+ virCheckReadOnlyGoto(conn->flags, error);
+
if (conn->driver->domainAgentSetResponseTimeout) {
if (conn->driver->domainAgentSetResponseTimeout(domain, timeout, flags) < 0)
goto error;
--
2.21.1
4 years, 9 months