[libvirt] [PATCH] maint: Post-release version bump to 5.1.0
by Peter Krempa
Signed-off-by: Peter Krempa <pkrempa(a)redhat.com>
---
configure.ac | 2 +-
docs/news.xml | 8 ++++++++
2 files changed, 9 insertions(+), 1 deletion(-)
Pushed under the trivial rule.
P.S.: I noticed I didn't fix the version in the summary I've copy-pasted after pushing ...
diff --git a/configure.ac b/configure.ac
index 4dcdd12069..197d9746b2 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], [5.1.0], [libvir-list(a)redhat.com], [], [https://libvirt.org])
+AC_INIT([libvirt], [5.2.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 e8d2c46457..7483631cd8 100644
--- a/docs/news.xml
+++ b/docs/news.xml
@@ -33,6 +33,14 @@
-->
<libvirt>
+ <release version="v5.2.0" date="unreleased">
+ <section title="New features">
+ </section>
+ <section title="Improvements">
+ </section>
+ <section title="Bug fixes">
+ </section>
+ </release>
<release version="v5.1.0" date="2019-03-04">
<section title="New features">
<change>
--
2.20.1
5 years, 8 months
[libvirt] Release of libvirt-5.1.0
by Daniel Veillard
A few days late after some travel, but everything is now pushed, freeze is
over ! The release is tagged in git, signed tarball and rpms are available
from the usual place:
ftp://libvirt.org/libvirt/
I also pushed the Python bindings release at:
ftp://libvirt.org/libvirt/python/
This is a rather large release, with a fair amount of new features,
improvement and bug fixes:
New features:
- bhyve: Add support for additional command-line arguments
The bhyve driver now supports passing additional command-line arguments
to the bhyve process using the new <bhyve:commandline> element in
domain configuration.
- network: Support setting a firewalld "zone" for virtual network bridges
All libvirt virtual networks with bridges managed by libvirt (i.e.
those with forward mode of "nat", "route", "open", or no forward mode)
will now be placed in a special firewalld zone called "libvirt" by
default. The zone of any network bridge can be changed using the zone
attribute of the network's bridge element.
- bhyve: Support for ignoring unknown MSRs reads and writes
A new <features> element <msrs unknown='ignore'/> was introduced and
the bhyve driver supports it to control unknown Model Specific
Registers (MSRs) reads and writes.
- qemu: Add support for encrypted VNC TLS keys
Use the password stored in the secret driver under the uuid specified
by the vnc_tls_x509_secret_uuid option in qemu.conf.
- Add storage pool namespace options
Allow for adjustment of RBD configuration options via Storage Pool XML
Namespace adjustments.
- qemu: Add support for setting post-copy migration bandwidth
Users can now limit the bandwidth of post-copy migration, e.g. via
virsh migrate --postcopy-bandwidth.
Improvements:
- Create private chains for virtual network firewall rules
Historically firewall rules for virtual networks were added straight
into the base chains. This works but has a number of bugs and design
limitations. To address them, libvirt now puts firewall rules into its
own chains.
- Detect CEPH and GPFS as shared FS
When starting a migration libvirt performs some sanity checks to make
sure domain will be able to run on the destination. One of the
requirements is that the disk has to either be migrated too or be
accessible from a network filesystem. CEPH and GPFS weren't detected as
a network filesystem.
- Advertise network MTU via DHCP when specified
If network MTU is set and the network has DHCP enabled, advertise the
MTU in DHCP transaction too so that clients can adjust their link
accordingly.
- qemu: Allocate memory at the configured NUMA nodes from start
Libvirt used to just start QEMU, let it allocate memory for the guest,
and then use CGroups to move the memory to configured NUMA nodes. This
is suboptimal as huge chunks of memory have to be moved. Moreover, this
relies on ability to move memory later which is not always true. A
change was made to set process affinity correctly from the start so
that memory is allocated on the configured nodes from the beginning.
- Support for newer Wireshark
Adapt libvirt to use the more recent release requiring a source build
configuration of libvirt --with-wireshark to upgrade to the more recent
version.
- Batch mode virsh and virt-admin parsing improvements
When parsing a single-argument command_string in batch mode, virsh and
virt-admin now permit newlines in addition to semicolons for splitting
commands, and backslash-newline for splitting long lines, to be more
like shell parsing.
Bug fixes:
- qemu: Use CAP_DAC_OVERRIDE during QEMU capabilities probing
By default, libvirt runs the QEMU process as qemu:qemu which could
cause issues during probing as some features like AMD SEV might be
inaccessible to QEMU because of file system permissions. Therefore,
CAP_DAC_OVERRIDE is granted to overcome these for the purposes of
probing.
- storage: Add default mount options for fs/netfs storage pools
Altered the command line generation for fs/netfs storage pools to add
some default options. For Linux based systems, the options added are
"nodev, nosuid, noexec". For FreeBSD based systems, the options added
are "nosuid, noexec".
- qemu: Allow use of PCI for RISC-V guests
This works with QEMU 4.0.0+ only and is opt-in at the moment, since it
requires users to manually assign PCI addresses, but is otherwise fully
functional.
- network: Fix virtual networks on systems using firewalld+nftables
Because of the transitional state of firewalld's new support for
nftables, not all iptables features required by libvirt are yet
available, so libvirt must continue to use iptables for its own packet
filtering rules even when the firewalld backend is set to use nftables.
However, due to the way iptables support is implemented in kernels
using nftables (iptables rules are converted to nftables rules and
processed in a separate hook from the native nftables rules), guest
networking was broken on hosts with firewalld configured to use
nftables as the backend. This has been fixed by putting libvirt-managed
bridges in their own firewalld zone, so that guest traffic can be
forwarded beyond the host and host services can be exposed to guests on
the virtual network without opening up those same services to the rest
of the physical network. This means that host access from virtual
machines is no longer controlled by the firewalld default zone (usually
"public"), but rather by the new firewalld zone called "libvirt"
(unless configured otherwise using the new zone attribute of the
network bridge element).
- qemu: Fix i6300esb watchdog hotplug on Q35
Ensure that libvirt allocates a PCI address for the device so that QEMU
did not default to an address that would not allow for device hotplug.
- lxc: Don't reboot host on virDomainReboot
If the container is really a simple one (init is just bash and the
whole root is passed through) then virDomainReboot and
virDomainShutdown would reboot or shutdown the host. The solution is to
use different method to reboot or shutdown the container in that case
(e.g. signal).
- rpc: Various stream fixes
One particular race was fixed, one locking problem and error reporting
from streams was made better.
- qemu: Fix guestfwd hotplug/hotunplug
Fixed the generation of the guestfwd hotplug/unplug command sent to
QEMU to match the syntax used when creating the initial command line.
- qemu: Forbid CDROMs on virtio bus
Attempting to create an empty virtio-blk drive or attempting to eject
it results into an error. Forbid configurations where users would
attempt to use CDROMs in virtio bus.
- qemu: Use 'raw' for 'volume' disks without format
Storage pools might want to specify format of the image when
translating the volume thus libvirt can't add any default format when
parsing the XML. Add an explicit format when starting the VM and format
is not present neither by user specifying it nor by the storage pool
translation function.
- qemu: Assume 'raw' default storage format also for network storage
Post parse callback adds the 'raw' type only for local files. Remote
files can also have backing store (even local) so we should do this
also for network backed storage.
- qemu: Fix block job progress reporting and advocate for READY event
In some cases QEMU can get to 100% and still not reach the synchronised
phase. Initiating a pivot in that case will fail. Therefore it is
strongly advised to wait for VIR_DOMAIN_BLOCK_JOB_READY event which
does not suffer from this problem.
- qemu: Don't format image properties for empty drive
If a -drive has no image, then formatting attributes such as cache,
readonly, etc. would cause errors to be reported from QEMU. This was
fixed by not supplying the attributes for devices without an image.
- External snapshot metadata redefinition is fixed
Attempting to use VIR_DOMAIN_SNAPSHOT_CREATE_REDEFINE to reinstate the
metadata describing an external snapshot created earlier for an offline
domain no longer fails.
Thanks everybody for your contributions to this new release,
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/
5 years, 8 months
[libvirt] [jenkins-ci PATCH v6 0/4] Add support for cross compiling libvirt via Debian
by Daniel P. Berrangé
Changed in v6:
- Use a static mapping for arch info
- Split out data file changes from code changes
- Change arch suffix to a prefix
Changed in v5:
- Remove redundant formatter class
- Update commit message
- Update readme
- Move misplaced patch chunk
- Dont set "dest" in arg when not needed
- Use metavar for subparser
Changed in v4:
- Pull in change to use argparse sub-parsers
- Refactor way architecture specific package rules are stored
to be in the main package mappings data
Changed in v3:
- Remove sheepdog more generally
- Use .format() style printf
- Split config to cross-build.yml
- Make glusterfs name per-distro customized
- Misc code style changes
- Rename fields in cross-build.yml
- Don't use crossbuild-essential packages
Changed in v2:
- Fix multiple package name mistakes
- Modify lcitool to generate cross-arch docker files
- Add --no-install-recommended flag to apt-get
- Add DEBIAN_FRONTEND=noninteractive env to apt-get
- Improve error reporting in lcitool
- Add make rule for generating dockerfiles locally
Daniel P. Berrangé (4):
mappings: extend mapping to allow per-arch entries
mappings: filter arch usage for libnuma / xen
lcitool: support generating cross compiler dockerfiles
mappings: mark packages using foreign arch for cross builds
guests/lcitool | 117 ++++++++++++++++++++-
guests/playbooks/update/tasks/packages.yml | 32 ++++++
guests/vars/mappings.yml | 106 ++++++++++++++++++-
3 files changed, 249 insertions(+), 6 deletions(-)
--
2.20.1
5 years, 8 months
[libvirt] [PATCH 00/26] cpu_x86: Add multiple signatures for CPU models
by Jiri Denemark
CPU signatures in the cpu_map serve as a hint for CPUID to CPU model
matching algorithm. If the CPU signatures matches any CPU model in the
cpu_map, this model will be the preferred one.
This works out well and solved several mismatches, but in real world
CPUs which should match a single CPU model may be produced with several
different signatures. For example, low voltage Broadwell CPUs for
laptops and Broadwell CPUs for servers differ in CPU model numbers while
we should detect them all as Broadwell CPU model.
This patch adds support for storing several signatures for a single CPU
model to make this hint useful for more CPUs. Later commits will provide
additional signatures for existing CPU models, which will correct some
results in our CPU test suite.
The list of signatures corresponding to each CPU model were generated by
consulting the following sites:
https://en.wikichip.org/wiki/intel/cpuid
http://www.cpu-world.com/cgi-bin/CPUID.pl
https://ark.intel.com/content/www/us/en/ark.html
Jiri Denemark (26):
cputest: Make sure generated files pass syntax-check
cputest: Add data for Intel(R) Xeon(R) CPU E5-2630 v4
cputest: Add data for Intel(R) Core(TM) i7-7600U
cputest: Add data for Intel(R) Xeon(R) CPU E7540
cputest: Add data for Intel(R) Xeon(R) CPU E5-2650
cpu_x86: Separate ancestor model parsing from x86ModelParse
cpu_x86: Separate signature parsing from x86ModelParse
cpu_x86: Separate vendor parsing from x86ModelParse
cpu_x86: Separate feature list parsing from x86ModelParse
cpu_x86: Make sure CPU model names are unique in cpu_map
cpu_x86: Allow multiple signatures for a CPU model
qemu_capabilities: Inroduce virQEMUCapsGetCPUModelX86Data
qemu_capabilities: Introduce virQEMUCapsGetCPUModelInfo
qemu_capabilities: Use virQEMUCapsGetCPUModelInfo
cpu_x86: Add virCPUx86DataGetSignature for tests
cpu_map: Add hex representation of signatures
cputest: Test CPU signatures
cpu_map: Add more signatures for Conroe CPU model
cpu_map: Add more signatures for Penryn CPU model
cpu_map: Add more signatures for Nehalem CPU models
cpu_map: Add more signatures for Westmere CPU model
cpu_map: Add more signatures for SandyBridge CPU models
cpu_map: Add more signatures for IvyBridge CPU models
cpu_map: Add more signatures for Haswell CPU models
cpu_map: Add more signatures for Broadwell CPU models
cpu_map: Add more signatures for Skylake-Client CPU models
src/cpu/cpu_x86.c | 345 +++--
src/cpu/cpu_x86.h | 5 +
src/cpu_map/x86_Broadwell-IBRS.xml | 5 +-
src/cpu_map/x86_Broadwell-noTSX-IBRS.xml | 5 +-
src/cpu_map/x86_Broadwell-noTSX.xml | 5 +-
src/cpu_map/x86_Broadwell.xml | 5 +-
src/cpu_map/x86_Conroe.xml | 3 +-
src/cpu_map/x86_EPYC-IBRS.xml | 2 +-
src/cpu_map/x86_EPYC.xml | 2 +-
src/cpu_map/x86_Haswell-IBRS.xml | 5 +-
src/cpu_map/x86_Haswell-noTSX-IBRS.xml | 5 +-
src/cpu_map/x86_Haswell-noTSX.xml | 5 +-
src/cpu_map/x86_Haswell.xml | 5 +-
src/cpu_map/x86_Icelake-Client.xml | 2 +-
src/cpu_map/x86_Icelake-Server.xml | 2 +-
src/cpu_map/x86_IvyBridge-IBRS.xml | 3 +-
src/cpu_map/x86_IvyBridge.xml | 3 +-
src/cpu_map/x86_Nehalem-IBRS.xml | 5 +-
src/cpu_map/x86_Nehalem.xml | 5 +-
src/cpu_map/x86_Opteron_G1.xml | 2 +-
src/cpu_map/x86_Opteron_G2.xml | 2 +-
src/cpu_map/x86_Opteron_G3.xml | 2 +-
src/cpu_map/x86_Opteron_G4.xml | 2 +-
src/cpu_map/x86_Opteron_G5.xml | 2 +-
src/cpu_map/x86_Penryn.xml | 3 +-
src/cpu_map/x86_SandyBridge-IBRS.xml | 3 +-
src/cpu_map/x86_SandyBridge.xml | 3 +-
src/cpu_map/x86_Skylake-Client-IBRS.xml | 7 +-
src/cpu_map/x86_Skylake-Client.xml | 7 +-
src/cpu_map/x86_Skylake-Server-IBRS.xml | 2 +-
src/cpu_map/x86_Skylake-Server.xml | 2 +-
src/cpu_map/x86_Westmere-IBRS.xml | 2 +-
src/cpu_map/x86_Westmere.xml | 4 +-
src/libvirt_private.syms | 1 +
src/qemu/qemu_capabilities.c | 91 +-
src/qemu/qemu_capspriv.h | 8 +
tests/cputest.c | 96 ++
tests/cputestdata/cpu-reformat.py | 2 +-
tests/cputestdata/x86_64-cpuid-A10-5800K.sig | 4 +
tests/cputestdata/x86_64-cpuid-Atom-D510.sig | 4 +
tests/cputestdata/x86_64-cpuid-Atom-N450.sig | 4 +
.../cputestdata/x86_64-cpuid-Core-i5-2500.sig | 4 +
.../x86_64-cpuid-Core-i5-2540M.sig | 4 +
.../x86_64-cpuid-Core-i5-4670T.sig | 4 +
.../x86_64-cpuid-Core-i5-650-json.xml | 9 +-
.../cputestdata/x86_64-cpuid-Core-i5-650.sig | 4 +
.../cputestdata/x86_64-cpuid-Core-i5-6600.sig | 4 +
.../x86_64-cpuid-Core-i7-2600-xsaveopt.sig | 4 +
.../cputestdata/x86_64-cpuid-Core-i7-2600.sig | 4 +
.../x86_64-cpuid-Core-i7-3520M.sig | 4 +
.../x86_64-cpuid-Core-i7-3740QM.sig | 4 +
.../cputestdata/x86_64-cpuid-Core-i7-3770.sig | 4 +
.../x86_64-cpuid-Core-i7-4510U.sig | 4 +
.../x86_64-cpuid-Core-i7-4600U.sig | 4 +
.../x86_64-cpuid-Core-i7-5600U-arat.sig | 4 +
.../x86_64-cpuid-Core-i7-5600U-ibrs.sig | 4 +
.../x86_64-cpuid-Core-i7-5600U.sig | 4 +
.../x86_64-cpuid-Core-i7-7600U-disabled.xml | 6 +
.../x86_64-cpuid-Core-i7-7600U-enabled.xml | 8 +
.../x86_64-cpuid-Core-i7-7600U-guest.xml | 28 +
.../x86_64-cpuid-Core-i7-7600U-host.xml | 29 +
.../x86_64-cpuid-Core-i7-7600U-json.xml | 13 +
.../x86_64-cpuid-Core-i7-7600U.json | 755 +++++++++++
.../x86_64-cpuid-Core-i7-7600U.sig | 4 +
.../x86_64-cpuid-Core-i7-7600U.xml | 47 +
.../cputestdata/x86_64-cpuid-Core-i7-7700.sig | 4 +
.../cputestdata/x86_64-cpuid-Core2-E6850.sig | 4 +
.../cputestdata/x86_64-cpuid-Core2-Q9500.sig | 4 +
.../x86_64-cpuid-EPYC-7601-32-Core-ibpb.sig | 4 +
.../x86_64-cpuid-EPYC-7601-32-Core.sig | 4 +
tests/cputestdata/x86_64-cpuid-FX-8150.sig | 4 +
.../cputestdata/x86_64-cpuid-Opteron-1352.sig | 4 +
.../cputestdata/x86_64-cpuid-Opteron-2350.sig | 4 +
.../cputestdata/x86_64-cpuid-Opteron-6234.sig | 4 +
.../cputestdata/x86_64-cpuid-Opteron-6282.sig | 4 +
.../x86_64-cpuid-Pentium-P6100-guest.xml | 10 +-
.../x86_64-cpuid-Pentium-P6100.sig | 4 +
tests/cputestdata/x86_64-cpuid-Phenom-B95.sig | 4 +
.../x86_64-cpuid-Ryzen-7-1800X-Eight-Core.sig | 4 +
tests/cputestdata/x86_64-cpuid-Xeon-5110.sig | 4 +
.../x86_64-cpuid-Xeon-E3-1245-v5.sig | 4 +
.../x86_64-cpuid-Xeon-E5-2609-v3.sig | 4 +
.../x86_64-cpuid-Xeon-E5-2623-v4-guest.xml | 11 +-
.../x86_64-cpuid-Xeon-E5-2623-v4-json.xml | 11 +-
.../x86_64-cpuid-Xeon-E5-2623-v4.sig | 4 +
.../x86_64-cpuid-Xeon-E5-2630-v3.sig | 4 +
.../x86_64-cpuid-Xeon-E5-2630-v4-disabled.xml | 7 +
.../x86_64-cpuid-Xeon-E5-2630-v4-enabled.xml | 8 +
.../x86_64-cpuid-Xeon-E5-2630-v4-guest.xml | 34 +
.../x86_64-cpuid-Xeon-E5-2630-v4-host.xml | 35 +
.../x86_64-cpuid-Xeon-E5-2630-v4-json.xml | 14 +
.../x86_64-cpuid-Xeon-E5-2630-v4.json | 596 +++++++++
.../x86_64-cpuid-Xeon-E5-2630-v4.sig | 4 +
.../x86_64-cpuid-Xeon-E5-2630-v4.xml | 43 +
.../x86_64-cpuid-Xeon-E5-2650-disabled.xml | 5 +
.../x86_64-cpuid-Xeon-E5-2650-enabled.xml | 8 +
.../x86_64-cpuid-Xeon-E5-2650-guest.xml | 29 +
.../x86_64-cpuid-Xeon-E5-2650-host.xml | 30 +
.../x86_64-cpuid-Xeon-E5-2650-json.xml | 14 +
.../x86_64-cpuid-Xeon-E5-2650-v3.sig | 4 +
.../x86_64-cpuid-Xeon-E5-2650-v4-guest.xml | 11 +-
.../x86_64-cpuid-Xeon-E5-2650-v4-json.xml | 11 +-
.../x86_64-cpuid-Xeon-E5-2650-v4.sig | 4 +
.../x86_64-cpuid-Xeon-E5-2650.json | 931 ++++++++++++++
.../cputestdata/x86_64-cpuid-Xeon-E5-2650.sig | 4 +
.../cputestdata/x86_64-cpuid-Xeon-E5-2650.xml | 34 +
.../x86_64-cpuid-Xeon-E7-4820-guest.xml | 8 +-
.../x86_64-cpuid-Xeon-E7-4820-json.xml | 8 +-
.../cputestdata/x86_64-cpuid-Xeon-E7-4820.sig | 4 +
.../x86_64-cpuid-Xeon-E7-4830-json.xml | 9 +-
.../cputestdata/x86_64-cpuid-Xeon-E7-4830.sig | 4 +
.../x86_64-cpuid-Xeon-E7-8890-v3.sig | 4 +
.../x86_64-cpuid-Xeon-E7540-disabled.xml | 5 +
.../x86_64-cpuid-Xeon-E7540-enabled.xml | 7 +
.../x86_64-cpuid-Xeon-E7540-guest.xml | 25 +
.../x86_64-cpuid-Xeon-E7540-host.xml | 26 +
.../x86_64-cpuid-Xeon-E7540-json.xml | 14 +
.../cputestdata/x86_64-cpuid-Xeon-E7540.json | 1117 +++++++++++++++++
tests/cputestdata/x86_64-cpuid-Xeon-E7540.sig | 4 +
tests/cputestdata/x86_64-cpuid-Xeon-E7540.xml | 30 +
.../x86_64-cpuid-Xeon-Gold-5115.sig | 4 +
.../x86_64-cpuid-Xeon-Gold-6148.sig | 4 +
tests/cputestdata/x86_64-cpuid-Xeon-W3520.sig | 4 +
tests/cputestdata/x86_64-cpuid-Xeon-X5460.sig | 4 +
124 files changed, 4634 insertions(+), 206 deletions(-)
create mode 100644 tests/cputestdata/x86_64-cpuid-A10-5800K.sig
create mode 100644 tests/cputestdata/x86_64-cpuid-Atom-D510.sig
create mode 100644 tests/cputestdata/x86_64-cpuid-Atom-N450.sig
create mode 100644 tests/cputestdata/x86_64-cpuid-Core-i5-2500.sig
create mode 100644 tests/cputestdata/x86_64-cpuid-Core-i5-2540M.sig
create mode 100644 tests/cputestdata/x86_64-cpuid-Core-i5-4670T.sig
create mode 100644 tests/cputestdata/x86_64-cpuid-Core-i5-650.sig
create mode 100644 tests/cputestdata/x86_64-cpuid-Core-i5-6600.sig
create mode 100644 tests/cputestdata/x86_64-cpuid-Core-i7-2600-xsaveopt.sig
create mode 100644 tests/cputestdata/x86_64-cpuid-Core-i7-2600.sig
create mode 100644 tests/cputestdata/x86_64-cpuid-Core-i7-3520M.sig
create mode 100644 tests/cputestdata/x86_64-cpuid-Core-i7-3740QM.sig
create mode 100644 tests/cputestdata/x86_64-cpuid-Core-i7-3770.sig
create mode 100644 tests/cputestdata/x86_64-cpuid-Core-i7-4510U.sig
create mode 100644 tests/cputestdata/x86_64-cpuid-Core-i7-4600U.sig
create mode 100644 tests/cputestdata/x86_64-cpuid-Core-i7-5600U-arat.sig
create mode 100644 tests/cputestdata/x86_64-cpuid-Core-i7-5600U-ibrs.sig
create mode 100644 tests/cputestdata/x86_64-cpuid-Core-i7-5600U.sig
create mode 100644 tests/cputestdata/x86_64-cpuid-Core-i7-7600U-disabled.xml
create mode 100644 tests/cputestdata/x86_64-cpuid-Core-i7-7600U-enabled.xml
create mode 100644 tests/cputestdata/x86_64-cpuid-Core-i7-7600U-guest.xml
create mode 100644 tests/cputestdata/x86_64-cpuid-Core-i7-7600U-host.xml
create mode 100644 tests/cputestdata/x86_64-cpuid-Core-i7-7600U-json.xml
create mode 100644 tests/cputestdata/x86_64-cpuid-Core-i7-7600U.json
create mode 100644 tests/cputestdata/x86_64-cpuid-Core-i7-7600U.sig
create mode 100644 tests/cputestdata/x86_64-cpuid-Core-i7-7600U.xml
create mode 100644 tests/cputestdata/x86_64-cpuid-Core-i7-7700.sig
create mode 100644 tests/cputestdata/x86_64-cpuid-Core2-E6850.sig
create mode 100644 tests/cputestdata/x86_64-cpuid-Core2-Q9500.sig
create mode 100644 tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-ibpb.sig
create mode 100644 tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core.sig
create mode 100644 tests/cputestdata/x86_64-cpuid-FX-8150.sig
create mode 100644 tests/cputestdata/x86_64-cpuid-Opteron-1352.sig
create mode 100644 tests/cputestdata/x86_64-cpuid-Opteron-2350.sig
create mode 100644 tests/cputestdata/x86_64-cpuid-Opteron-6234.sig
create mode 100644 tests/cputestdata/x86_64-cpuid-Opteron-6282.sig
create mode 100644 tests/cputestdata/x86_64-cpuid-Pentium-P6100.sig
create mode 100644 tests/cputestdata/x86_64-cpuid-Phenom-B95.sig
create mode 100644 tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core.sig
create mode 100644 tests/cputestdata/x86_64-cpuid-Xeon-5110.sig
create mode 100644 tests/cputestdata/x86_64-cpuid-Xeon-E3-1245-v5.sig
create mode 100644 tests/cputestdata/x86_64-cpuid-Xeon-E5-2609-v3.sig
create mode 100644 tests/cputestdata/x86_64-cpuid-Xeon-E5-2623-v4.sig
create mode 100644 tests/cputestdata/x86_64-cpuid-Xeon-E5-2630-v3.sig
create mode 100644 tests/cputestdata/x86_64-cpuid-Xeon-E5-2630-v4-disabled.xml
create mode 100644 tests/cputestdata/x86_64-cpuid-Xeon-E5-2630-v4-enabled.xml
create mode 100644 tests/cputestdata/x86_64-cpuid-Xeon-E5-2630-v4-guest.xml
create mode 100644 tests/cputestdata/x86_64-cpuid-Xeon-E5-2630-v4-host.xml
create mode 100644 tests/cputestdata/x86_64-cpuid-Xeon-E5-2630-v4-json.xml
create mode 100644 tests/cputestdata/x86_64-cpuid-Xeon-E5-2630-v4.json
create mode 100644 tests/cputestdata/x86_64-cpuid-Xeon-E5-2630-v4.sig
create mode 100644 tests/cputestdata/x86_64-cpuid-Xeon-E5-2630-v4.xml
create mode 100644 tests/cputestdata/x86_64-cpuid-Xeon-E5-2650-disabled.xml
create mode 100644 tests/cputestdata/x86_64-cpuid-Xeon-E5-2650-enabled.xml
create mode 100644 tests/cputestdata/x86_64-cpuid-Xeon-E5-2650-guest.xml
create mode 100644 tests/cputestdata/x86_64-cpuid-Xeon-E5-2650-host.xml
create mode 100644 tests/cputestdata/x86_64-cpuid-Xeon-E5-2650-json.xml
create mode 100644 tests/cputestdata/x86_64-cpuid-Xeon-E5-2650-v3.sig
create mode 100644 tests/cputestdata/x86_64-cpuid-Xeon-E5-2650-v4.sig
create mode 100644 tests/cputestdata/x86_64-cpuid-Xeon-E5-2650.json
create mode 100644 tests/cputestdata/x86_64-cpuid-Xeon-E5-2650.sig
create mode 100644 tests/cputestdata/x86_64-cpuid-Xeon-E5-2650.xml
create mode 100644 tests/cputestdata/x86_64-cpuid-Xeon-E7-4820.sig
create mode 100644 tests/cputestdata/x86_64-cpuid-Xeon-E7-4830.sig
create mode 100644 tests/cputestdata/x86_64-cpuid-Xeon-E7-8890-v3.sig
create mode 100644 tests/cputestdata/x86_64-cpuid-Xeon-E7540-disabled.xml
create mode 100644 tests/cputestdata/x86_64-cpuid-Xeon-E7540-enabled.xml
create mode 100644 tests/cputestdata/x86_64-cpuid-Xeon-E7540-guest.xml
create mode 100644 tests/cputestdata/x86_64-cpuid-Xeon-E7540-host.xml
create mode 100644 tests/cputestdata/x86_64-cpuid-Xeon-E7540-json.xml
create mode 100644 tests/cputestdata/x86_64-cpuid-Xeon-E7540.json
create mode 100644 tests/cputestdata/x86_64-cpuid-Xeon-E7540.sig
create mode 100644 tests/cputestdata/x86_64-cpuid-Xeon-E7540.xml
create mode 100644 tests/cputestdata/x86_64-cpuid-Xeon-Gold-5115.sig
create mode 100644 tests/cputestdata/x86_64-cpuid-Xeon-Gold-6148.sig
create mode 100644 tests/cputestdata/x86_64-cpuid-Xeon-W3520.sig
create mode 100644 tests/cputestdata/x86_64-cpuid-Xeon-X5460.sig
--
2.21.0
5 years, 8 months
[libvirt] [PATCH v2 0/6] Alter domain_conf to make use of autofree
by John Ferlan
v1: https://www.redhat.com/archives/libvir-list/2019-February/msg01160.html
Changes since v1:
* Push patch 1
* Split patch 2 to follow code review guidance:
* (Patch1) Pull out virDomainEmulatorPinDefParseXML changes to
use VIR_STEAL_PTR
* (Patch2) Use VIR_AUTOPTR(virBitmap)
* (Patch3) Handle a couple cases where goto's no longer necessary
* Drop Patch 3
* Split Patch 4 to follow code review guidance:
* (Patch4) Remove unused variables
* (Patch5) Just use VIR_AUTOFREE
* (Patch6) Handle the removal of goto logic that's no longer necessary
John Ferlan (6):
conf: Rework virDomainEmulatorPinDefParseXML
conf: Use VIR_AUTOPTR(virBitmap) in domain_conf
conf: Clean up some unnecessary goto paths
conf: Remove a few unused variables in domain_conf
conf: Use VIR_AUTOFREE in domain_conf
conf: Clean up some unnecessary goto paths
src/conf/domain_conf.c | 1937 ++++++++++++++--------------------------
1 file changed, 676 insertions(+), 1261 deletions(-)
--
2.20.1
5 years, 8 months
[libvirt] [jenkins-ci PATCH v5 0/5] Add support for cross compiling libvirt via Debian
by Daniel P. Berrangé
Changed in v5:
- Remove redundant formatter class
- Update commit message
- Update readme
- Move misplaced patch chunk
- Dont set "dest" in arg when not needed
- Use metavar for subparser
Changed in v4:
- Pull in change to use argparse sub-parsers
- Refactor way architecture specific package rules are stored
to be in the main package mappings data
Changed in v3:
- Remove sheepdog more generally
- Use .format() style printf
- Split config to cross-build.yml
- Make glusterfs name per-distro customized
- Misc code style changes
- Rename fields in cross-build.yml
- Don't use crossbuild-essential packages
Changed in v2:
- Fix multiple package name mistakes
- Modify lcitool to generate cross-arch docker files
- Add --no-install-recommended flag to apt-get
- Add DEBIAN_FRONTEND=noninteractive env to apt-get
- Improve error reporting in lcitool
- Add make rule for generating dockerfiles locally
Daniel P. Berrangé (5):
lcitool: use subparsers for commands
lcitool: avoid repetition when expanding package mappings
lcitool: avoid intermediate list of packages
mappings: extend mapping to allow per-arch entries
lcitool: support generating cross compiler dockerfiles
guests/README.markdown | 18 +-
guests/host_vars/libvirt-debian-9/main.yml | 44 ++++
guests/host_vars/libvirt-debian-sid/main.yml | 45 ++++
guests/lcitool | 230 +++++++++++++------
guests/playbooks/update/tasks/packages.yml | 32 +++
guests/vars/mappings.yml | 101 +++++++-
6 files changed, 381 insertions(+), 89 deletions(-)
--
2.20.1
5 years, 8 months
[libvirt] [PATCH] util: Use VIR_AUTOUNREF for virstoragefile
by John Ferlan
Let's make use of the auto __cleanup capabilities cleaning up any
now unnecessary goto paths.
Signed-off-by: John Ferlan <jferlan(a)redhat.com>
---
BTW: I did try this with a linked travis-ci and github branch, and it
worked for me. I'm avoiding altering virStorageFileMetadataNew...
src/util/virstoragefile.c | 130 +++++++++++++++-----------------------
1 file changed, 52 insertions(+), 78 deletions(-)
diff --git a/src/util/virstoragefile.c b/src/util/virstoragefile.c
index b2e308d81d..003183bf76 100644
--- a/src/util/virstoragefile.c
+++ b/src/util/virstoragefile.c
@@ -1205,11 +1205,11 @@ virStorageFileGetMetadataFromFD(const char *path,
{
virStorageSourcePtr ret = NULL;
- virStorageSourcePtr meta = NULL;
ssize_t len = VIR_STORAGE_MAX_HEADER;
struct stat sb;
int dummy;
VIR_AUTOFREE(char *) buf = NULL;
+ VIR_AUTOUNREF(virStorageSourcePtr) meta = NULL;
if (!backingFormat)
backingFormat = &dummy;
@@ -1231,21 +1231,21 @@ virStorageFileGetMetadataFromFD(const char *path,
meta->type = VIR_STORAGE_TYPE_DIR;
meta->format = VIR_STORAGE_FILE_DIR;
VIR_STEAL_PTR(ret, meta);
- goto cleanup;
+ return ret;
}
if (lseek(fd, 0, SEEK_SET) == (off_t)-1) {
virReportSystemError(errno, _("cannot seek to start of '%s'"), meta->path);
- goto cleanup;
+ return NULL;
}
if ((len = virFileReadHeaderFD(fd, len, &buf)) < 0) {
virReportSystemError(errno, _("cannot read header '%s'"), meta->path);
- goto cleanup;
+ return NULL;
}
if (virStorageFileGetMetadataInternal(meta, buf, len, backingFormat) < 0)
- goto cleanup;
+ return NULL;
if (S_ISREG(sb.st_mode))
meta->type = VIR_STORAGE_TYPE_FILE;
@@ -1253,9 +1253,6 @@ virStorageFileGetMetadataFromFD(const char *path,
meta->type = VIR_STORAGE_TYPE_BLOCK;
VIR_STEAL_PTR(ret, meta);
-
- cleanup:
- virObjectUnref(meta);
return ret;
}
@@ -2243,7 +2240,8 @@ virStorageSourcePtr
virStorageSourceCopy(const virStorageSource *src,
bool backingChain)
{
- virStorageSourcePtr def = NULL;
+ virStorageSourcePtr ret = NULL;
+ VIR_AUTOUNREF(virStorageSourcePtr) def = NULL;
if (!(def = virStorageSourceNew()))
return NULL;
@@ -2282,60 +2280,57 @@ virStorageSourceCopy(const virStorageSource *src,
VIR_STRDUP(def->compat, src->compat) < 0 ||
VIR_STRDUP(def->tlsAlias, src->tlsAlias) < 0 ||
VIR_STRDUP(def->tlsCertdir, src->tlsCertdir) < 0)
- goto error;
+ return NULL;
if (src->nhosts) {
if (!(def->hosts = virStorageNetHostDefCopy(src->nhosts, src->hosts)))
- goto error;
+ return NULL;
def->nhosts = src->nhosts;
}
if (src->srcpool &&
!(def->srcpool = virStorageSourcePoolDefCopy(src->srcpool)))
- goto error;
+ return NULL;
if (src->features &&
!(def->features = virBitmapNewCopy(src->features)))
- goto error;
+ return NULL;
if (src->encryption &&
!(def->encryption = virStorageEncryptionCopy(src->encryption)))
- goto error;
+ return NULL;
if (src->perms &&
!(def->perms = virStoragePermsCopy(src->perms)))
- goto error;
+ return NULL;
if (src->timestamps &&
!(def->timestamps = virStorageTimestampsCopy(src->timestamps)))
- goto error;
+ return NULL;
if (virStorageSourceSeclabelsCopy(def, src) < 0)
- goto error;
+ return NULL;
if (src->auth &&
!(def->auth = virStorageAuthDefCopy(src->auth)))
- goto error;
+ return NULL;
if (src->pr &&
!(def->pr = virStoragePRDefCopy(src->pr)))
- goto error;
+ return NULL;
if (virStorageSourceInitiatorCopy(&def->initiator, &src->initiator))
- goto error;
+ return NULL;
if (backingChain && src->backingStore) {
if (!(def->backingStore = virStorageSourceCopy(src->backingStore,
true)))
- goto error;
+ return NULL;
}
- return def;
-
- error:
- virObjectUnref(def);
- return NULL;
+ VIR_STEAL_PTR(ret, def);
+ return ret;
}
@@ -2601,27 +2596,28 @@ static virStorageSourcePtr
virStorageSourceNewFromBackingRelative(virStorageSourcePtr parent,
const char *rel)
{
- virStorageSourcePtr def;
+ virStorageSourcePtr ret = NULL;
VIR_AUTOFREE(char *) dirname = NULL;
+ VIR_AUTOUNREF(virStorageSourcePtr) def = NULL;
if (!(def = virStorageSourceNew()))
return NULL;
/* store relative name */
if (VIR_STRDUP(def->relPath, parent->backingStoreRaw) < 0)
- goto error;
+ return NULL;
if (!(dirname = mdir_name(parent->path))) {
virReportOOMError();
- goto error;
+ return NULL;
}
if (STRNEQ(dirname, "/")) {
if (virAsprintf(&def->path, "%s/%s", dirname, rel) < 0)
- goto error;
+ return NULL;
} else {
if (virAsprintf(&def->path, "/%s", rel) < 0)
- goto error;
+ return NULL;
}
if (virStorageSourceGetActualType(parent) == VIR_STORAGE_TYPE_NETWORK) {
@@ -2632,25 +2628,20 @@ virStorageSourceNewFromBackingRelative(virStorageSourcePtr parent,
if (parent->nhosts) {
if (!(def->hosts = virStorageNetHostDefCopy(parent->nhosts,
parent->hosts)))
- goto error;
+ return NULL;
def->nhosts = parent->nhosts;
}
if (VIR_STRDUP(def->volume, parent->volume) < 0)
- goto error;
+ return NULL;
} else {
/* set the type to _FILE, the caller shall update it to the actual type */
def->type = VIR_STORAGE_TYPE_FILE;
}
- cleanup:
- return def;
-
- error:
- virObjectUnref(def);
- def = NULL;
- goto cleanup;
+ VIR_STEAL_PTR(ret, def);
+ return ret;
}
@@ -3648,8 +3639,9 @@ virStorageSourcePtr
virStorageSourceNewFromBackingAbsolute(const char *path)
{
const char *json;
- virStorageSourcePtr def;
+ virStorageSourcePtr ret = NULL;
int rc;
+ VIR_AUTOUNREF(virStorageSourcePtr) def = NULL;
if (!(def = virStorageSourceNew()))
return NULL;
@@ -3658,7 +3650,7 @@ virStorageSourceNewFromBackingAbsolute(const char *path)
def->type = VIR_STORAGE_TYPE_FILE;
if (VIR_STRDUP(def->path, path) < 0)
- goto error;
+ return NULL;
} else {
def->type = VIR_STORAGE_TYPE_NETWORK;
@@ -3673,7 +3665,7 @@ virStorageSourceNewFromBackingAbsolute(const char *path)
rc = virStorageSourceParseBackingColon(def, path);
if (rc < 0)
- goto error;
+ return NULL;
virStorageSourceNetworkAssignDefaultPorts(def);
@@ -3686,11 +3678,8 @@ virStorageSourceNewFromBackingAbsolute(const char *path)
}
}
- return def;
-
- error:
- virObjectUnref(def);
- return NULL;
+ VIR_STEAL_PTR(ret, def);
+ return ret;
}
@@ -3698,7 +3687,8 @@ virStorageSourcePtr
virStorageSourceNewFromBacking(virStorageSourcePtr parent)
{
struct stat st;
- virStorageSourcePtr def;
+ virStorageSourcePtr ret = NULL;
+ VIR_AUTOUNREF(virStorageSourcePtr) def = NULL;
if (virStorageIsRelative(parent->backingStoreRaw))
def = virStorageSourceNewFromBackingRelative(parent,
@@ -3721,17 +3711,14 @@ virStorageSourceNewFromBacking(virStorageSourcePtr parent)
/* copy parent's labelling and other top level stuff */
if (virStorageSourceInitChainElement(def, parent, true) < 0)
- goto error;
+ return NULL;
def->readonly = true;
def->detected = true;
}
- return def;
-
- error:
- virObjectUnref(def);
- return NULL;
+ VIR_STEAL_PTR(ret, def);
+ return ret;
}
@@ -3872,9 +3859,8 @@ virStorageSourceUpdateCapacity(virStorageSourcePtr src,
ssize_t len,
bool probe)
{
- int ret = -1;
- virStorageSourcePtr meta = NULL;
int format = src->format;
+ VIR_AUTOUNREF(virStorageSourcePtr) meta = NULL;
/* Raw files: capacity is physical size. For all other files: if
* the metadata has a capacity, use that, otherwise fall back to
@@ -3884,12 +3870,12 @@ virStorageSourceUpdateCapacity(virStorageSourcePtr src,
virReportError(VIR_ERR_INTERNAL_ERROR,
_("no disk format for %s and probing is disabled"),
src->path);
- goto cleanup;
+ return -1;
}
if ((format = virStorageFileProbeFormatFromBuf(src->path,
buf, len)) < 0)
- goto cleanup;
+ return -1;
src->format = format;
}
@@ -3902,17 +3888,13 @@ virStorageSourceUpdateCapacity(virStorageSourcePtr src,
if (src->encryption && meta->encryption)
src->encryption->payload_offset = meta->encryption->payload_offset;
} else {
- goto cleanup;
+ return -1;
}
if (src->encryption && src->encryption->payload_offset != -1)
src->capacity -= src->encryption->payload_offset * 512;
- ret = 0;
-
- cleanup:
- virObjectUnref(meta);
- return ret;
+ return 0;
}
@@ -4849,10 +4831,10 @@ virStorageFileGetMetadataRecurse(virStorageSourcePtr src,
int ret = -1;
const char *uniqueName;
ssize_t headerLen;
- virStorageSourcePtr backingStore = NULL;
int backingFormat;
int rv;
VIR_AUTOFREE(char *) buf = NULL;
+ VIR_AUTOUNREF(virStorageSourcePtr) backingStore = NULL;
VIR_DEBUG("path=%s format=%d uid=%u gid=%u",
src->path, src->format,
@@ -4935,7 +4917,6 @@ virStorageFileGetMetadataRecurse(virStorageSourcePtr src,
if (virStorageSourceHasBacking(src))
src->backingStore->id = depth;
virStorageFileDeinit(src);
- virObjectUnref(backingStore);
return ret;
}
@@ -5004,11 +4985,10 @@ int
virStorageFileGetBackingStoreStr(virStorageSourcePtr src,
char **backing)
{
- virStorageSourcePtr tmp = NULL;
ssize_t headerLen;
- int ret = -1;
int rv;
VIR_AUTOFREE(char *) buf = NULL;
+ VIR_AUTOUNREF(virStorageSourcePtr) tmp = NULL;
*backing = NULL;
@@ -5032,17 +5012,11 @@ virStorageFileGetBackingStoreStr(virStorageSourcePtr src,
}
if (!(tmp = virStorageSourceCopy(src, false)))
- goto cleanup;
+ return -1;
if (virStorageFileGetMetadataInternal(tmp, buf, headerLen, NULL) < 0)
- goto cleanup;
+ return -1;
VIR_STEAL_PTR(*backing, tmp->backingStoreRaw);
-
- ret = 0;
-
- cleanup:
- virObjectUnref(tmp);
-
- return ret;
+ return 0;
}
--
2.20.1
5 years, 8 months