[libvirt] [PATCH] Post-release version bump to 3.10.0
by Jiri Denemark
Signed-off-by: Jiri Denemark <jdenemar(a)redhat.com>
---
Pushed.
configure.ac | 2 +-
docs/news.xml | 8 ++++++++
2 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/configure.ac b/configure.ac
index ebe3318e0..b2d991c3b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -16,7 +16,7 @@ dnl You should have received a copy of the GNU Lesser General Public
dnl License along with this library. If not, see
dnl <http://www.gnu.org/licenses/>.
-AC_INIT([libvirt], [3.9.0], [libvir-list(a)redhat.com], [], [https://libvirt.org])
+AC_INIT([libvirt], [3.10.0], [libvir-list(a)redhat.com], [], [https://libvirt.org])
AC_CONFIG_SRCDIR([src/libvirt.c])
AC_CONFIG_AUX_DIR([build-aux])
AC_CONFIG_HEADERS([config.h])
diff --git a/docs/news.xml b/docs/news.xml
index c24cc3f99..ef855d895 100644
--- a/docs/news.xml
+++ b/docs/news.xml
@@ -33,6 +33,14 @@
-->
<libvirt>
+ <release version="v3.10.0" date="unreleased">
+ <section title="New features">
+ </section>
+ <section title="Improvements">
+ </section>
+ <section title="Bug fixes">
+ </section>
+ </release>
<release version="v3.9.0" date="2017-11-02">
<section title="New features">
<change>
--
2.14.3
7 years
[libvirt] Release of libvirt-3.9.0
by Daniel Veillard
It's out ! I tagged it on git and pushed signed tarball and rpms to
the usual place:
ftp://libvirt.org/libvirt/
I also made a 3.9.0 release of libvirt-python but it's virtually equivalent
to 3.8.0 as no commit were made last month in that module.
People are strongly encouraged to upgrade, as 3.9.0 includes a security
fix, there is also a reasonable amount of user visible new features,
improvement and bug fixes as usual:
Security:
- qemu: Ensure TLS clients always verify the server certificate
While it's reasonable to turn off client certificate validation, as
setting it up can be non-trivial, clients should always verify the
server certificate to avoid MITM attacks. However, libvirt was using
the same knob to control both checks, leading to CVE-2017-1000256 /
LSN-2017-0002.
New features:
- Add capability to allow hot (un)plug of a domain watchdog device
- Allow users to set device aliases
Users can set aliases to domain devices and thus identify them easily.
- qemu: Support multiqueue for virtio-blk
Multiqueue support for virtio-blk has been available in QEMU ever since
2.7.0, and now libvirt guests can enable it.
- Add virDomainSetLifecycleAction API
Provided a new API to allow dynamic guest lifecycle control for guest
reactions to poweroff, restart, or crash type events related to the
domain XML on_poweroff, on_reboot, and on_crash elements. The virsh
set-lifecycle-action command was created to control the actions.
- qemu: Allow cold(un)plugging and hot(un)plugging input devices
- net: Implement QoS for vhostuser
Improvements:
- Allow a logical volume to be create using LUKS
A logical volume may be created using an encryption element using
"luks" format. This does require a previously created secret to store
the passphrase used to encrypt the volume Adding the volume to a domain
can then either provide the secret or allow the consumer in the guest
to provide the passphrase in order to decrypt the volume.
- net: Ignore auto-generated MAC address when detaching an interface
If the MAC address has not been specified by the user, libvirt will try
and fill in the gaps by generating one; however, for some error paths
that led to some confusing error messages, so when an auto-generated
MAC address is specified the error message will not include the
auto-generated MAC.
- net: Enable MAC address lookup for virDomainInterfaceStats
- apparmor: Several improvements
Changes include permitting access to data about USB devices and dnsmasq
instances, allowing spaces in guest names and many more.
- cpu: Use CPU information obtained from QEMU when possible
Recent QEMU versions can expose information about which CPU models are
available and usable on the host; libvirt will now make use of such
information whenever possible.
- hyperv: Various improvements
The error reported when clients can't connect to Hyper-V has been made
more descriptive, and memory limits for guests are now mapped to more
appropriate libvirt equivalents.
- qemu: Report QEMU error on failed migration
Instead of reporting a generic error, ask QEMU for a more detailed and
thus hopefully more helpful one.
- vbox: Implement autoport for RDP
libvirt will now obtain the (dynamically allocated) RDP port number
from VirtualBox itself, avoiding conflicts between multiple guests
wanting to use RDP at the same time.
- qemu: Allow rotation of small logs
On a host where numerous unique instances are executed per day, it's
quite possible that, even though each of the single log files are
fairly small, collectively the quantity and volume may add tens of
thousands of log files to the /var/log/libvirt/qemu/ directory.
Removing the constraints that log have to be bigger than 100 KiB before
they can be rotated solves the issue.
Bug fixes:
- Fix swapped interface statistics and QoS
Due to internal implementation, reported statistics for some types of
interfaces were swapped (RX appeared in TX and vice versa). Similarly,
QoS was set in reversed way.
- Properly resize local LUKS encrypted volume
Resizing of a local LUKS encrypted volume will now use qemu-img to
resize the volume. This will require configuring a secret for the LUKS
encrypted volume.
- qemu: Reserve PCI addresses for implicit i440fx devices
Failing to do so causes the addresses to be considered usable by
libvirt, which means they could be assigned to more than one device
resulting in the guest failing to start.
- spec: Restart libvirtd only at the end of the upgrade process
Use %posttrans to make sure libvirtd is not restarted before all other
components, such as the library itself and storage / hypervisor
drivers, have already been upgraded.
Thanks everybody for your help with this release, be it with patches,
bug reports, ideas, reviews, docs, etc...
Enjoy !
Daniel
--
Daniel Veillard | Red Hat Developers Tools http://developer.redhat.com/
veillard(a)redhat.com | libxml Gnome XML XSLT toolkit http://xmlsoft.org/
http://veillard.com/ | virtualization library http://libvirt.org/
7 years
Re: [libvirt] networking problem
by msliu@reynoldstocks.com
Hi Daniel,
# ls /usr/share/libvirt/
cpu_map.xml libvirtLogo.png schemas
No "network" folder found
# locate default.xml
/etc/libvirt/storage/default.xml
/etc/libvirt/storage/autostart/default.xml
/home/satimis/.config/libvirt/storage/default.xml
/home/satimis/.config/libvirt/storage/autostart/default.xml
/usr/share/gutenprint/5.2/xml/escp2/inputslots/default.xml
Besides
# ls /etc/libvirt/qemu/networks/
autostart NAT.xml
# ls /etc/libvirt/qemu/networks/autostart/
NAT.xml
There are 2 NAT.xml file of same content
# cat /etc/libvirt/qemu/networks/NAT.xml
<!--
WARNING: THIS IS AN AUTO-GENERATED FILE. CHANGES TO IT ARE LIKELY TO BE
OVERWRITTEN AND LOST. Changes to this xml configuration should be made
using:
virsh net-edit NAT
or other application using the libvirt API.
-->
<network>
<name>NAT</name>
<uuid>2b550fe1-cff0-476e-aabe-f8a239231315</uuid>
<bridge name='virbr0' stp='on' delay='0'/>
<mac address='52:54:00:a6:37:e4'/>
<domain name='NAT'/>
<ip address='192.168.100.1' netmask='255.255.255.0'>
<dhcp>
<range start='192.168.100.128' end='192.168.100.254'/>
</dhcp>
</ip>
</network>
# cat /etc/libvirt/qemu/networks/autostart/NAT.xml
<!--
WARNING: THIS IS AN AUTO-GENERATED FILE. CHANGES TO IT ARE LIKELY TO BE
OVERWRITTEN AND LOST. Changes to this xml configuration should be made
using:
virsh net-edit NAT
or other application using the libvirt API.
-->
<network>
<name>NAT</name>
<uuid>2b550fe1-cff0-476e-aabe-f8a239231315</uuid>
<bridge name='virbr0' stp='on' delay='0'/>
<mac address='52:54:00:a6:37:e4'/>
<domain name='NAT'/>
<ip address='192.168.100.1' netmask='255.255.255.0'>
<dhcp>
<range start='192.168.100.128' end='192.168.100.254'/>
</dhcp>
</ip>
</network>
Regards
SL
-------- Original Message --------
Subject: Re: [libvirt] networking problem
From: "Daniel P. Berrange" <berrange(a)redhat.com>
Date: Thu, November 02, 2017 9:31 am
To: Stefan Hajnoczi <stefanha(a)gmail.com>
Cc: msliu(a)reynoldstocks.com, libvir-list(a)redhat.com, kvm(a)vger.kernel.org
On Thu, Nov 02, 2017 at 09:24:22AM +0000, Stefan Hajnoczi wrote:
> On Sun, Oct 29, 2017 at 04:07:09AM -0700, msliu(a)reynoldstocks.com wrote:
> > I have performed following steps:
> >
> > $ virsh net-destroy default
> > $ virsh net-undefine default
> >
> > Now I couldn't start guest with following warning popup:
> > Error starting domain: Network not found: no network with matching name
> > 'default'
> >
> > Please advise how to re-create 'default' instead of reinstalling all
> > guests.
>
> This is a libvirt question. I have CCed the libvirt mailing list so you
> can continue discussion there.
>
> On Red Hat-based distros try reinstalling the
> libvirt-daemon-config-network package. On Debian-based distros try
> reinstalling the libvirt-daemon-system package. This should restore the
> /etc/libvirt/qemu/networks/default.xml file that you are missing.
No need to re-install those RPMs - Libvirt leaves a copy of the stock
XML
file at /usr/share/libvirt/networks/default.xml. So just run
virsh define /usr/share/libvirt/networks/default.xml
virsh start default
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 :|
7 years
[libvirt] [jenkins-ci PATCH 0/2] fix libosinfo rpm build
by Pavel Hrdina
Pavel Hrdina (2):
jobs: rename check_env into job_env
jobs: use job_env in all job templates
jobs/autotools.yaml | 5 ++++-
jobs/defaults.yaml | 2 +-
jobs/perl-makemaker.yaml | 3 +++
projects/libosinfo.yaml | 2 +-
projects/libvirt.yaml | 2 +-
5 files changed, 10 insertions(+), 4 deletions(-)
--
2.13.6
7 years
[libvirt] [PATCH v5 0/4] numa: describe sibling nodes distances
by Wim Ten Have
From: Wim ten Have <wim.ten.have(a)oracle.com>
This patch extends guest domain administration adding support to
advertise node sibling distances when configuring NUMA guests also
referred to as vNUMA (Virtual NUMA).
NUMA (Non-Uniform Memory Access), a method of configuring a cluster
of nodes within a single multiprocessing system such that it shares
processor local memory amongst others improving performance and the
ability of the system to be expanded.
A NUMA system could be illustrated as shown below. Within this 4-NODE
system, every socket is equipped with its own distinct memory and some
with I/O. Access to memory or I/O on remote nodes is only possible
through the "Interconnect". This results in different performance for
local and remote resources.
In contrast to NUMA we recognize the flat SMP system where no concept
of local or remote resource exists. The disadvantage of high socket
count SMP systems is that the shared bus can easily become a performance
bottleneck under high activity.
+-------------+-------+ +-------+-------------+
|NODE0| | | | | |NODE3|
| | CPU00 | CPU03 | | CPU12 | CPU15 | |
| | | | | | | |
| Mem +--- Socket0 ---<-------->--- Socket3 ---+ Mem |
| | | | | | | |
+-----+ CPU01 | CPU02 | | CPU13 | CPU14 | |
| I/O | | | | | | |
+-----+-------^-------+ +-------^-------+-----+
| |
| Interconnect |
| |
+-------------v-------+ +-------v-------------+
|NODE1| | | | | |NODE2|
| | CPU04 | CPU07 | | CPU08 | CPU11 | |
| | | | | | | |
| Mem +--- Socket1 ---<-------->--- Socket2 ---+ Mem |
| | | | | | | |
+-----+ CPU05 | CPU06 | | CPU09 | CPU10 | |
| I/O | | | | | | |
+-----+-------+-------+ +-------+-------+-----+
NUMA adds an intermediate level of memory shared amongst a few cores
per socket as illustrated above, so that data accesses do not have to
travel over a single bus.
Unfortunately the way NUMA does this adds its own limitations. This,
as visualized in the illustration above, happens when data is stored in
memory associated with Socket2 and is accessed by a CPU (core) in Socket0.
The processors use the "Interconnect" path to access resource on other
nodes. These "Interconnect" hops add data access delays. It is therefore
in our interest to describe the relative distances between nodes.
The relative distances between nodes are described in the system's SLIT
(System Locality Distance Information Table) which is part of the ACPI
(Advanced Configuration and Power Interface) specification.
On Linux systems the SLIT detail can be listed with help of the
'numactl -H' command. The above guest would show the following output.
[root@f25 ~]# numactl -H
available: 4 nodes (0-3)
node 0 cpus: 0 1 2 3
node 0 size: 2007 MB
node 0 free: 1931 MB
node 1 cpus: 4 5 6 7
node 1 size: 1951 MB
node 1 free: 1902 MB
node 2 cpus: 8 9 10 11
node 2 size: 1998 MB
node 2 free: 1910 MB
node 3 cpus: 12 13 14 15
node 3 size: 2015 MB
node 3 free: 1907 MB
node distances:
node 0 1 2 3
0: 10 21 31 21
1: 21 10 21 31
2: 31 21 10 21
3: 21 31 21 10
These patches extend core libvirt's XML description of NUMA cells to
include NUMA distance information and propagate it to Xen guests via
libxl. Recently qemu landed support for constructing the SLIT since
commit 0f203430dd ("numa: Allow setting NUMA distance for different NUMA
nodes"). The core libvirt extensions in this patch set could be used to
propagate NUMA distances to qemu quests in the future.
Wim ten Have (4):
numa: describe siblings distances within cells
xenconfig: add domxml conversions for xen-xl
libxl: vnuma support
xlconfigtest: add tests for numa cell sibling distances
docs/formatdomain.html.in | 63 +++-
docs/schemas/basictypes.rng | 7 +
docs/schemas/cputypes.rng | 18 ++
src/conf/numa_conf.c | 359 ++++++++++++++++++++-
src/conf/numa_conf.h | 20 ++
src/libvirt_private.syms | 5 +
src/libxl/libxl_conf.c | 121 +++++++
src/libxl/libxl_driver.c | 3 +-
src/xenconfig/xen_xl.c | 333 +++++++++++++++++++
.../test-fullvirt-vnuma-autocomplete.cfg | 26 ++
.../test-fullvirt-vnuma-autocomplete.xml | 85 +++++
.../test-fullvirt-vnuma-nodistances.cfg | 26 ++
.../test-fullvirt-vnuma-nodistances.xml | 53 +++
.../test-fullvirt-vnuma-partialdist.cfg | 26 ++
.../test-fullvirt-vnuma-partialdist.xml | 60 ++++
tests/xlconfigdata/test-fullvirt-vnuma.cfg | 26 ++
tests/xlconfigdata/test-fullvirt-vnuma.xml | 81 +++++
tests/xlconfigtest.c | 6 +
18 files changed, 1313 insertions(+), 5 deletions(-)
create mode 100644 tests/xlconfigdata/test-fullvirt-vnuma-autocomplete.cfg
create mode 100644 tests/xlconfigdata/test-fullvirt-vnuma-autocomplete.xml
create mode 100644 tests/xlconfigdata/test-fullvirt-vnuma-nodistances.cfg
create mode 100644 tests/xlconfigdata/test-fullvirt-vnuma-nodistances.xml
create mode 100644 tests/xlconfigdata/test-fullvirt-vnuma-partialdist.cfg
create mode 100644 tests/xlconfigdata/test-fullvirt-vnuma-partialdist.xml
create mode 100644 tests/xlconfigdata/test-fullvirt-vnuma.cfg
create mode 100644 tests/xlconfigdata/test-fullvirt-vnuma.xml
--
2.13.6
7 years
[libvirt] [PATCH] news: Update for 3.9.0 release
by Andrea Bolognani
Signed-off-by: Andrea Bolognani <abologna(a)redhat.com>
---
As usual, a lot of changes have made it to master without the release
notes being updated at the same time.
I'll push this tomorrow in the morning, so that it can make it into
the release, unless it gets (N)ACKed earlier.
docs/news.xml | 138 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 138 insertions(+)
diff --git a/docs/news.xml b/docs/news.xml
index 6a864916d..3cf761d89 100644
--- a/docs/news.xml
+++ b/docs/news.xml
@@ -49,6 +49,36 @@
easily.
</description>
</change>
+ <change>
+ <summary>
+ qemu: Support multiqueue for virtio-blk
+ </summary>
+ <description>
+ Multiqueue support for <code>virtio-blk</code> has been available
+ in QEMU ever since 2.7.0, and now libvirt guests can enable it.
+ </description>
+ </change>
+ <change>
+ <summary>
+ Add virDomainSetLifecycleAction() API
+ </summary>
+ <description>
+ This new API, also exposed through the
+ <code>set-lifecycle-action</code> <code>virsh</code> command, allows
+ the user to dynamically control how the guest will react to being
+ powered off, being restarted or crashing.
+ </description>
+ </change>
+ <change>
+ <summary>
+ qemu: Allow cold(un)plugging and hot(un)plugging input devices
+ </summary>
+ </change>
+ <change>
+ <summary>
+ net: Implement QoS for vhostuser
+ </summary>
+ </change>
</section>
<section title="Improvements">
<change>
@@ -64,6 +94,82 @@
in order to decrypt the volume.
</description>
</change>
+ <change>
+ <summary>
+ net: Ignore auto-generated MAC address when detaching an interface
+ </summary>
+ <description>
+ If the MAC address has not been specified by the user, libvirt will
+ try and fill in the gaps by generating one; however, that leads to
+ very confusing error messages, so it's not desiderable.
+ </description>
+ </change>
+ <change>
+ <summary>
+ net: Enable MAC address lookup for virDomainInterfaceStats()
+ </summary>
+ </change>
+ <change>
+ <summary>
+ apparmor: Several improvements
+ </summary>
+ <description>
+ Changes include permitting access to data about USB devices and
+ <code>dnsmasq</code> instances, allowing spaces in guest names and
+ many more.
+ </description>
+ </change>
+ <change>
+ <summary>
+ cpu: Use CPU information obtained from QEMU when possible
+ </summary>
+ <description>
+ Recent QEMU versions can expose information about which CPU models
+ are available and usable on the host; libvirt will now make use of
+ such information whenever possible.
+ </description>
+ </change>
+ <change>
+ <summary>
+ hyperv: Various improvements
+ </summary>
+ <description>
+ The error reported when clients can't connect to Hyper-V has been
+ made more descriptive, and memory limits for guests are now mapped
+ to more appropriate libvirt equivalents.
+ </description>
+ </change>
+ <change>
+ <summary>
+ qemu: Report QEMU error on failed migration
+ </summary>
+ <description>
+ Instead of reporting a generic error, ask QEMU for a more detailed
+ and thus hopefully more helpful one.
+ </description>
+ </change>
+ <change>
+ <summary>
+ vbox: Implement autoport for RDP
+ </summary>
+ <description>
+ libvirt will now obtain the (dynamically allocated) RDP port number
+ from VirtualBox itself, avoiding conflicts between multiple guests
+ wanting to use RDP at the same time.
+ </description>
+ </change>
+ <change>
+ <summary>
+ qemu: Allow rotation of small logs
+ </summary>
+ <description>
+ On a host where tons of unique instances are executed per day, it's
+ quite possible that while each of the single log files are quite
+ small, they will build up to quite a bit of clutter. Removing the
+ constraints that log have to be bigger than 100 KiB before they can
+ be rotated solves the issue.
+ </description>
+ </change>
</section>
<section title="Bug fixes">
<change>
@@ -87,6 +193,38 @@
the LUKS encrypted volume.
</description>
</change>
+ <change>
+ <summary>
+ qemu: Reserve PCI addresses for implicit i440fx devices
+ </summary>
+ <description>
+ Failing to do so causes the addresses to be considered usable by
+ libvirt, which means they could be assigned to more than one device
+ resulting in the guest failing to start.
+ </description>
+ </change>
+ <change>
+ <summary>
+ qemu: Ensure TLS clients always verify the server certificate
+ </summary>
+ <description>
+ While it's reasonable to turn off client certificate validation,
+ as setting it up can be non-trivial, clients should always verify
+ the server certificate to avoid MITM attacks. libvirt was, however,
+ using the same knob to control both checks, leading to
+ CVE-2017-1000256 / LSN-2017-0002.
+ </description>
+ </change>
+ <change>
+ <summary>
+ spec: Restart libvirtd only at the end of the upgrade process
+ </summary>
+ <description>
+ Use <code>%posttrans</code> to make sure <code>libvirtd</code>
+ is not restarted before all other components, such as the library
+ itself and storage / hypervisor drivers, have already been upgraded.
+ </description>
+ </change>
</section>
</release>
<release version="v3.8.0" date="2017-10-04">
--
2.13.6
7 years
[libvirt] [PATCH] cputest: Skip tests requiring JSON_MODELS if QEMU is disabled
by Jiri Denemark
Some tests require JSON_MODELS to be parsed into qemuCaps and applied
when computing CPU models and such test cannot succeed if QEMU driver is
disabled. Let's mark the tests with JSON_MODELS_REQUIRED and skip the
appropriate parts if building without QEMU.
On the other hand, CPU tests with JSON_MODELS should succeed even if
model definitions from QEMU are not parsed and applied. Let's explicitly
test this by repeating the tests without JSON_MODELS set.
This fixes the build with QEMU driver disabled, e.g., on some
architectures on RHEL/CentOS.
Signed-off-by: Jiri Denemark <jdenemar(a)redhat.com>
---
tests/cputest.c | 70 ++++++++++++++++++++++++++++++++++++++++-----------------
1 file changed, 49 insertions(+), 21 deletions(-)
diff --git a/tests/cputest.c b/tests/cputest.c
index 5d1fe7d99..8e94c2152 100644
--- a/tests/cputest.c
+++ b/tests/cputest.c
@@ -464,6 +464,7 @@ typedef enum {
JSON_NONE,
JSON_HOST,
JSON_MODELS,
+ JSON_MODELS_REQUIRED,
} cpuTestCPUIDJson;
#if WITH_QEMU && WITH_YAJL
@@ -491,7 +492,8 @@ cpuTestMakeQEMUCaps(const struct data *data)
goto error;
virQEMUCapsSet(qemuCaps, QEMU_CAPS_KVM);
- if (data->flags == JSON_MODELS)
+ if (data->flags == JSON_MODELS ||
+ data->flags == JSON_MODELS_REQUIRED)
virQEMUCapsSet(qemuCaps, QEMU_CAPS_QUERY_CPU_DEFINITIONS);
virQEMUCapsSetArch(qemuCaps, data->arch);
@@ -517,32 +519,41 @@ cpuTestMakeQEMUCaps(const struct data *data)
}
-static virDomainCapsCPUModelsPtr
-cpuTestGetCPUModels(const struct data *data)
+static int
+cpuTestGetCPUModels(const struct data *data,
+ virDomainCapsCPUModelsPtr *models)
{
- virDomainCapsCPUModelsPtr models = NULL;
virQEMUCapsPtr qemuCaps;
- if (data->flags != JSON_MODELS)
- return NULL;
+ *models = NULL;
+
+ if (data->flags != JSON_MODELS &&
+ data->flags != JSON_MODELS_REQUIRED)
+ return 0;
if (!(qemuCaps = cpuTestMakeQEMUCaps(data)))
- return NULL;
+ return -1;
- models = virQEMUCapsGetCPUDefinitions(qemuCaps, VIR_DOMAIN_VIRT_KVM);
- virObjectRef(models);
+ *models = virQEMUCapsGetCPUDefinitions(qemuCaps, VIR_DOMAIN_VIRT_KVM);
+ virObjectRef(*models);
virObjectUnref(qemuCaps);
- return models;
+ return 0;
}
#else /* if WITH_QEMU && WITH_YAJL */
-static virDomainCapsCPUModelsPtr
-cpuTestGetCPUModels(const struct data *data ATTRIBUTE_UNUSED)
+static int
+cpuTestGetCPUModels(const struct data *data,
+ virDomainCapsCPUModelsPtr *models)
{
- return NULL;
+ *models = NULL;
+
+ if (data->flags == JSON_MODELS_REQUIRED)
+ return EXIT_AM_SKIP;
+
+ return 0;
}
#endif
@@ -580,8 +591,15 @@ cpuTestCPUID(bool guest, const void *arg)
cpu->type = VIR_CPU_TYPE_HOST;
}
- if (guest)
- models = cpuTestGetCPUModels(data);
+ if (guest) {
+ int rc;
+
+ rc = cpuTestGetCPUModels(data, &models);
+ if (rc != 0) {
+ ret = rc;
+ goto cleanup;
+ }
+ }
if (cpuDecode(cpu, hostData, models) < 0)
goto cleanup;
@@ -755,11 +773,17 @@ cpuTestUpdateLive(const void *arg)
virDomainCapsCPUModelPtr hvModel;
char **blockers = NULL;
virDomainCapsCPUUsable usable = VIR_DOMCAPS_CPU_USABLE_UNKNOWN;
+ int rc;
if (!(models = virDomainCapsCPUModelsNew(0)))
goto cleanup;
- hvModels = cpuTestGetCPUModels(data);
+ rc = cpuTestGetCPUModels(data, &hvModels);
+ if (rc != 0) {
+ ret = rc;
+ goto cleanup;
+ }
+
hvModel = virDomainCapsCPUModelsGet(hvModels, expected->model);
if (hvModel) {
@@ -969,15 +993,19 @@ mymain(void)
host, cpu, models, 0, result)
#if WITH_QEMU && WITH_YAJL
-# define DO_TEST_CPUID_JSON(arch, host, json) \
+# define DO_TEST_JSON(arch, host, json) \
do { \
+ if (json == JSON_MODELS) { \
+ DO_TEST(arch, cpuTestGuestCPUID, host, host, \
+ NULL, NULL, 0, 0); \
+ } \
if (json != JSON_NONE) { \
DO_TEST(arch, cpuTestJSONCPUID, host, host, \
NULL, NULL, json, 0); \
} \
} while (0)
#else
-# define DO_TEST_CPUID_JSON(arch, host, json)
+# define DO_TEST_JSON(arch, host, json)
#endif
#define DO_TEST_CPUID(arch, host, json) \
@@ -986,7 +1014,7 @@ mymain(void)
NULL, NULL, 0, 0); \
DO_TEST(arch, cpuTestGuestCPUID, host, host, \
NULL, NULL, json, 0); \
- DO_TEST_CPUID_JSON(arch, host, json); \
+ DO_TEST_JSON(arch, host, json); \
if (json != JSON_NONE) { \
DO_TEST(arch, cpuTestUpdateLive, host, host, \
NULL, NULL, json, 0); \
@@ -1126,7 +1154,7 @@ mymain(void)
DO_TEST_CPUID(VIR_ARCH_X86_64, "Core-i5-4670T", JSON_HOST);
DO_TEST_CPUID(VIR_ARCH_X86_64, "Core-i5-6600", JSON_HOST);
DO_TEST_CPUID(VIR_ARCH_X86_64, "Core-i7-2600", JSON_HOST);
- DO_TEST_CPUID(VIR_ARCH_X86_64, "Core-i7-2600-xsaveopt", JSON_MODELS);
+ DO_TEST_CPUID(VIR_ARCH_X86_64, "Core-i7-2600-xsaveopt", JSON_MODELS_REQUIRED);
DO_TEST_CPUID(VIR_ARCH_X86_64, "Core-i7-3520M", JSON_NONE);
DO_TEST_CPUID(VIR_ARCH_X86_64, "Core-i7-3740QM", JSON_HOST);
DO_TEST_CPUID(VIR_ARCH_X86_64, "Core-i7-3770", JSON_HOST);
@@ -1150,7 +1178,7 @@ mymain(void)
DO_TEST_CPUID(VIR_ARCH_X86_64, "Xeon-E5-2630", JSON_HOST);
DO_TEST_CPUID(VIR_ARCH_X86_64, "Xeon-E5-2650", JSON_HOST);
DO_TEST_CPUID(VIR_ARCH_X86_64, "Xeon-E7-4820", JSON_HOST);
- DO_TEST_CPUID(VIR_ARCH_X86_64, "Xeon-E7-4830", JSON_MODELS);
+ DO_TEST_CPUID(VIR_ARCH_X86_64, "Xeon-E7-4830", JSON_MODELS_REQUIRED);
DO_TEST_CPUID(VIR_ARCH_X86_64, "Xeon-E7-8890", JSON_MODELS);
DO_TEST_CPUID(VIR_ARCH_X86_64, "Xeon-Gold-6148", JSON_HOST);
DO_TEST_CPUID(VIR_ARCH_X86_64, "Xeon-W3520", JSON_HOST);
--
2.14.3
7 years
Re: [libvirt] networking problem
by Stefan Hajnoczi
On Sun, Oct 29, 2017 at 04:07:09AM -0700, msliu(a)reynoldstocks.com wrote:
> I have performed following steps:
>
> $ virsh net-destroy default
> $ virsh net-undefine default
>
> Now I couldn't start guest with following warning popup:
> Error starting domain: Network not found: no network with matching name
> 'default'
>
> Please advise how to re-create 'default' instead of reinstalling all
> guests.
This is a libvirt question. I have CCed the libvirt mailing list so you
can continue discussion there.
On Red Hat-based distros try reinstalling the
libvirt-daemon-config-network package. On Debian-based distros try
reinstalling the libvirt-daemon-system package. This should restore the
/etc/libvirt/qemu/networks/default.xml file that you are missing.
Stefan
7 years
[libvirt] [PATCH v2 0/4] Predictable file names for memory-backend-file
by Michal Privoznik
v2 of:
https://www.redhat.com/archives/libvir-list/2017-October/msg01063.html
Patches are to be found here too:
https://github.com/zippy2/libvirt/tree/qemu_mem_path_v3
diff to v1:
-Dropped qemu.conf config knob
-s/rmdir/virFileDeleteTree/ in qemuProcessBuildDestroyMemoryPathsImpl() because
qemu leaves files behind and thus we need to unlink them too.
Michal Privoznik (4):
conf: s/virDomainObjGetShortName/virDomainDefGetShortName/
qemu: Move memPath generation from memoryBackingDir to a separate
function
qemu: Use predictable file names for memory-backend-file
news: Document predictable file names for memory-backend-file
docs/news.xml | 11 ++
src/conf/domain_conf.c | 4 +-
src/conf/domain_conf.h | 2 +-
src/libvirt_private.syms | 2 +-
src/qemu/qemu_command.c | 9 +-
src/qemu/qemu_conf.c | 71 ++++++++++-
src/qemu/qemu_conf.h | 10 ++
src/qemu/qemu_domain.c | 4 +-
src/qemu/qemu_driver.c | 19 ++-
src/qemu/qemu_hotplug.c | 2 +-
src/qemu/qemu_process.c | 137 +++++++++++++++------
src/qemu/qemu_process.h | 8 +-
.../qemuxml2argv-cpu-numa-memshared.args | 6 +-
.../qemuxml2argv-fd-memory-numa-topology.args | 3 +-
.../qemuxml2argv-fd-memory-numa-topology2.args | 6 +-
.../qemuxml2argv-fd-memory-numa-topology3.args | 9 +-
.../qemuxml2argv-hugepages-memaccess2.args | 9 +-
17 files changed, 244 insertions(+), 68 deletions(-)
--
2.13.6
7 years