[libvirt] [PATCH] storage: omit comma for ceph mon hosts to librados
by Yi Li
Silly mistakes omit the comma for multiple ipaddr
Fixes: cdd362e0e7a34d4f8f102c75f2ca513d23dd1db0
Signed-off-by: Yi Li <yili(a)winhong.com>
---
src/storage/storage_backend_rbd.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/storage/storage_backend_rbd.c b/src/storage/storage_backend_rbd.c
index bd6e3d5..315bef2 100644
--- a/src/storage/storage_backend_rbd.c
+++ b/src/storage/storage_backend_rbd.c
@@ -272,10 +272,10 @@ virStorageBackendRBDOpenRADOSConn(virStorageBackendRBDStatePtr ptr,
const char *incFormat;
if (virSocketAddrNumericFamily(source->hosts[i].name) == AF_INET6) {
/* IPv6 address must be escaped in brackets on the cmd line */
- incFormat = "[%s]:%d";
+ incFormat = "[%s]:%d,";
} else {
/* listenAddress is a hostname or IPv4 */
- incFormat = "%s:%d";
+ incFormat = "%s:%d,";
}
virBufferAsprintf(&mon_host, incFormat,
source->hosts[i].name,
--
2.7.5
5 years, 6 months
[libvirt] [PATCH] deprecate -mem-path fallback to anonymous RAM
by Igor Mammedov
Fallback might affect guest or worse whole host performance
or functionality if backing file were used to share guest RAM
with another process.
Patch deprecates fallback so that we could remove it in future
and ensure that QEMU will provide expected behavior and fail if
it can't use user provided backing file.
Signed-off-by: Igor Mammedov <imammedo(a)redhat.com>
---
PS:
Patch is written on top of
[PATCH v4 0/3] numa: deprecate '-numa node, mem' and default memory distribution
to avoid conflicts in qemu-deprecated.texi
numa.c | 4 ++--
qemu-deprecated.texi | 8 ++++++++
2 files changed, 10 insertions(+), 2 deletions(-)
diff --git a/numa.c b/numa.c
index 91a29138a2..53d67b8ad9 100644
--- a/numa.c
+++ b/numa.c
@@ -494,8 +494,8 @@ static void allocate_system_memory_nonnuma(MemoryRegion *mr, Object *owner,
if (mem_prealloc) {
exit(1);
}
- error_report("falling back to regular RAM allocation.");
-
+ warn_report("falling back to regular RAM allocation. "
+ "Fallback to RAM allocation is deprecated.");
/* Legacy behavior: if allocation failed, fall back to
* regular RAM allocation.
*/
diff --git a/qemu-deprecated.texi b/qemu-deprecated.texi
index 2fe9b72121..2193705644 100644
--- a/qemu-deprecated.texi
+++ b/qemu-deprecated.texi
@@ -112,6 +112,14 @@ QEMU using implicit generic or board specific splitting rule.
Use @option{memdev} with @var{memory-backend-ram} backend or @option{mem} (if
it's supported by used machine type) to define mapping explictly instead.
+@subsection -mem-path fallback to RAM (since 4.1)
+Currently if system memory allocation from file pointed by @option{mem-path}
+fails, QEMU fallbacks to allocating from anonymous RAM. Which might result
+in unpredictable behavior since provided backing file wasn't used. In future
+QEMU will not fallback and fail to start up, so user could fix his/her QEMU/host
+configuration or explicitly use -m without -mem-path if system memory allocated
+from anonymous RAM suits usecase.
+
@section QEMU Machine Protocol (QMP) commands
@subsection block-dirty-bitmap-add "autoload" parameter (since 2.12.0)
--
2.18.1
5 years, 6 months
[libvirt] [PATCH v2 0/6] cgroups v2 fixes and improvements
by Pavel Hrdina
Pavel Hrdina (6):
util: vircgroup: pass parent cgroup into virCgroupDetectControllersCB
util: vircgroup: improve controller detection
util: vircgroupv2: use any controller to create thread directory
util: vircgroupv2: enable CPU controller only if it's available
util: vircgroupv2: separate return values of
virCgroupV2EnableController
util: vircgroupv2: don't error out if enabling controller fails
src/util/vircgroup.c | 32 ++++++++++----------
src/util/vircgroupbackend.h | 3 +-
src/util/vircgroupv1.c | 3 +-
src/util/vircgroupv2.c | 59 +++++++++++++++++++++++++++++--------
4 files changed, 66 insertions(+), 31 deletions(-)
--
2.21.0
5 years, 6 months
[libvirt] [PATCH 0/3] conf: Fix parsing of <disk> <seclabel> (blockdev-add saga)
by Peter Krempa
The parser for the seclabel would mess up context leaving disk source
private data unparsed.
Peter Krempa (3):
tests: qemustatusxml2xml: Split out the output file for 'modern' test
tests: qemustatusxml2xml: Add a seclabel for a disk with privateData
conf: domain: Restore XPath context after
virSecurityDeviceLabelDefParseXML
src/conf/domain_conf.c | 1 +
tests/qemustatusxml2xmldata/modern-in.xml | 3 +
tests/qemustatusxml2xmldata/modern-out.xml | 474 ++++++++++++++++++++-
3 files changed, 477 insertions(+), 1 deletion(-)
mode change 120000 => 100644 tests/qemustatusxml2xmldata/modern-out.xml
--
2.21.0
5 years, 6 months
[libvirt] [PATCH 5/6] docs: Deprecate CPU model runnability guarantees
by Eduardo Habkost
Document that CPU model runnability guarantees won't apply to
unversioned CPU models anymore.
Signed-off-by: Eduardo Habkost <ehabkost(a)redhat.com>
---
Cc: libvir-list(a)redhat.com
---
qemu-deprecated.texi | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)
diff --git a/qemu-deprecated.texi b/qemu-deprecated.texi
index df04f2840b..5fafb62a6d 100644
--- a/qemu-deprecated.texi
+++ b/qemu-deprecated.texi
@@ -243,3 +243,22 @@ Note that if you are exposing the export via /dev/nbd0, it is easier
to just export the entire image and then mount only /dev/nbd0p1 than
it is to reinvoke @command{qemu-nbd -c /dev/nbd0} limited to just a
subset of the image.
+
+@section Backwards compatibility
+
+@subsection Runnability guarantee of CPU models (since 4.1.0)
+
+Previous versions of QEMU never changed existing CPU models in
+ways that introduced additional host software or hardware
+requirements to the VM. This allowed management software to
+safely change the machine type of an existing VM without
+introducing new requirements ("runnability guarantee"). This
+prevented CPU models from being updated to include CPU
+vulnerability mitigations, leaving guests vulnerable in the
+default configuration.
+
+The CPU model runnability guarantee won't apply anymore to
+existing CPU models. Management software that needs runnability
+guarantees must resolve the CPU model aliases using te
+``alias-of'' field returned by the ``query-cpu-definitions'' QMP
+command.
--
2.18.0.rc1.1.g3f1ff2140
5 years, 6 months
[libvirt] [PATCH v2] test_driver: implement virNetworkGetDHCPLeases
by Ilias Stamatis
Signed-off-by: Ilias Stamatis <stamatis.iliass(a)gmail.com>
---
src/test/test_driver.c | 141 +++++++++++++++++++++++++++++++++++++++++
1 file changed, 141 insertions(+)
diff --git a/src/test/test_driver.c b/src/test/test_driver.c
index 4b1f2724a0..180940f859 100755
--- a/src/test/test_driver.c
+++ b/src/test/test_driver.c
@@ -4072,6 +4072,146 @@ testNetworkSetAutostart(virNetworkPtr net,
}
+static int
+testNetworkGetDHCPLeases(virNetworkPtr net,
+ const char *mac,
+ virNetworkDHCPLeasePtr **leases,
+ unsigned int flags)
+{
+ int ret = -1;
+ int ndomains = 0;
+ size_t i, j;
+ size_t nleases = 0;
+ size_t addr_offset;
+ bool need_results = !!leases;
+ char *hostname = NULL;
+ VIR_AUTOFREE(char *) bridge_name = NULL;
+ char mac_str[VIR_MAC_STRING_BUFLEN];
+ virMacAddr mac_addr;
+ virDomainObjPtr vm = NULL;
+ virDomainPtr *domains = NULL;
+ virDomainNetDefPtr inf = NULL;
+ virNetworkObjPtr obj = NULL;
+ virNetworkDefPtr obj_def = NULL;
+ virNetworkDHCPLeasePtr lease = NULL;
+ virNetworkDHCPLeasePtr *leases_ret = NULL;
+ virDomainInterfacePtr iface = NULL;
+ testDriverPtr privconn = net->conn->privateData;
+
+ virCheckFlags(0, -1);
+
+ if (mac && virMacAddrParse(mac, &mac_addr) < 0) {
+ virReportError(VIR_ERR_INVALID_MAC, "%s", mac);
+ return -1;
+ }
+
+ if (!(obj = testNetworkObjFindByName(privconn, net->name)))
+ return -1;
+
+ obj_def = virNetworkObjGetDef(obj);
+
+ if (VIR_STRDUP(bridge_name, obj_def->bridge) < 0)
+ goto cleanup;
+
+ virNetworkObjEndAPI(&obj);
+
+ if ((ndomains = virDomainObjListExport(privconn->domains, net->conn, &domains,
+ NULL, VIR_CONNECT_LIST_DOMAINS_ACTIVE)) < 0)
+ goto cleanup;
+
+ for (i = 0; i < ndomains; i++) {
+ /* the following must be called before testDomObjFromDomain */
+ hostname = testDomainGetHostname(domains[i], 0);
+
+ if (!(vm = testDomObjFromDomain(domains[i])))
+ continue;
+
+ for (j = 0; j < vm->def->nnets; j++) {
+ inf = vm->def->nets[j];
+
+ if (STRNEQ(inf->data.network.name, net->name))
+ continue;
+
+ virMacAddrFormat(&inf->mac, mac_str);
+ if (mac && virMacAddrCompare(mac, mac_str))
+ continue;
+
+ if (!need_results) {
+ nleases++;
+ continue;
+ }
+
+ if (VIR_ALLOC(lease) < 0 || VIR_ALLOC(iface) < 0 || VIR_ALLOC(iface->addrs) < 0)
+ goto error;
+ iface->naddrs = 1;
+
+ /* should be the same value as in testDomainInterfaceAddresses */
+ addr_offset = 20 * (vm->def->id - 1) + j + 1;
+ if (testDomainInterfaceAddressFromNet(privconn, inf, addr_offset, iface) < 0)
+ goto error;
+
+ if (VIR_STRDUP(lease->mac, mac_str) < 0 ||
+ VIR_STRDUP(lease->iface, bridge_name) < 0 ||
+ VIR_STRDUP(lease->hostname, hostname) < 0 ||
+ VIR_STRDUP(lease->ipaddr, iface->addrs->addr) < 0)
+ goto error;
+
+ lease->prefix = iface->addrs->prefix;
+ lease->type = iface->addrs->type;
+
+ virDomainInterfaceFree(iface);
+ iface = NULL;
+
+ lease->expirytime = 0;
+
+ lease->iaid = NULL;
+ if (lease->type == VIR_IP_ADDR_TYPE_IPV6) {
+ if (VIR_STRDUP(lease->clientid,
+ "00:01:00:01:16:C1:BA:6E:08:00:27:30:C3:B8") < 0)
+ goto error;
+ } else {
+ lease->clientid = NULL;
+ }
+
+ if (VIR_INSERT_ELEMENT(leases_ret, nleases, nleases, lease) < 0)
+ goto error;
+ }
+
+ VIR_FREE(hostname);
+ virDomainObjEndAPI(&vm);
+ }
+
+ if (leases_ret) {
+ /* NULL terminated array */
+ ignore_value(VIR_REALLOC_N(leases_ret, nleases + 1));
+ VIR_STEAL_PTR(*leases, leases_ret);
+ }
+
+ ret = nleases;
+
+ cleanup:
+ for (i = 0; i < ndomains; i++)
+ virDomainFree(domains[i]);
+
+ VIR_FREE(domains);
+ VIR_FREE(lease);
+ VIR_FREE(hostname);
+
+ virNetworkObjEndAPI(&obj);
+ virDomainInterfaceFree(iface);
+ virDomainObjEndAPI(&vm);
+ return ret;
+
+ error:
+ if (leases_ret) {
+ for (i = 0; i < nleases; i++)
+ virNetworkDHCPLeaseFree(leases_ret[i]);
+ VIR_FREE(leases_ret);
+ }
+ goto cleanup;
+}
+
+
/*
* Physical host interface routines
*/
@@ -7359,6 +7499,7 @@ static virNetworkDriver testNetworkDriver = {
.networkGetBridgeName = testNetworkGetBridgeName, /* 0.3.2 */
.networkGetAutostart = testNetworkGetAutostart, /* 0.3.2 */
.networkSetAutostart = testNetworkSetAutostart, /* 0.3.2 */
+ .networkGetDHCPLeases = testNetworkGetDHCPLeases, /* 5.5.0 */
.networkIsActive = testNetworkIsActive, /* 0.7.3 */
.networkIsPersistent = testNetworkIsPersistent, /* 0.7.3 */
};
--
2.22.0
5 years, 6 months
[libvirt] [PATCH 1/1] virpci: report dev->name in virPCIGetHeaderType error message
by Daniel Henrique Barboza
Trivial change. Adding the name of the device that has an
unknown PCI header type in that function helps when debugging
PCI code.
Signed-off-by: Daniel Henrique Barboza <danielhb413(a)gmail.com>
---
src/util/virpci.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/util/virpci.c b/src/util/virpci.c
index 8f2936c23a..75e8daadd5 100644
--- a/src/util/virpci.c
+++ b/src/util/virpci.c
@@ -3239,7 +3239,8 @@ int virPCIGetHeaderType(virPCIDevicePtr dev, int *hdrType)
type &= PCI_HEADER_TYPE_MASK;
if (type >= VIR_PCI_HEADER_LAST) {
virReportError(VIR_ERR_INTERNAL_ERROR,
- _("Unknown PCI header type '%d'"), type);
+ _("Unknown PCI header type '%d' for device '%s'"),
+ type, dev->name);
return -1;
}
--
2.20.1
5 years, 6 months
[libvirt] [PATCH] RFC: maint: Sort public symbols within a release
by Eric Blake
In libvirt_private.syms, we have a policy of keeping blocks of symbols
sorted by name - in fact, we enforce it during 'make check' with our
check-symsorting rule calling out to a perl script. But
libvirt_public.syms has been more cavalier over the years.
21 releases have been trivially sorted due to adding only one symbol;
while the following 27 releases listed multiple symbols in
alphabetical order, even if the symbols were not chronologically added
in that order [1]:
0.0.3 0.9.5 1.1.0
0.3.0 0.9.7 1.1.1
0.3.3 0.9.8 1.2.5
0.4.2 0.9.9 1.2.8
0.6.3 0.9.10 1.2.11
0.7.5 0.9.13 1.2.15
0.9.0 1.0.1 1.3.3
0.9.2 1.0.2 3.1.0
0.9.3 1.0.3 3.4.0
[1] Case study: git log -p v0.9.9..v0.9.10 src/libvirt_public.syms
shows 9 commits adding 9 APIs among 7 authors:
0b7ddf9e - trivially in order
adb99a05 - appending happened to also be sorted order
1f7aa0ac - irrelevant (removing TABs, not adding symbol)
6714fd04 - added in sorted order
8f8b0802 - appended, out of order
e1eea747 - re-sorted previous addition, and added in sorted order
02af3e13 - added in sorted order
c471e55e - added in sorted order
99fd69c3 - added in sorted order
The following patch changes the remaining 37 releases to do likewise,
and documents the practice.
Signed-off-by: Eric Blake <eblake(a)redhat.com>
---
I'm not sure if we want this patch - it got much bigger than I was
expecting. 37 releases is less than half of the total versions in the
file, but larger than the number of releases that were sorted (where
it is not even obvious if that was always intentional or by luck). We
could also decide to adopt a policy of listing symbols in the same
order as remote_protocol.x (although not all symbols go over RPC), but
that seems like it would be even more churn and harder to enforce.
Ideally, if we DO want this patch, we should also teach 'make check'
via src/check-symsorting.pl how to enforce it on the public file; as I
did not do that, this is marked RFC.
The diffstat shows a delta because I deleted 5 blank lines and added
2 comment lines.
---
src/libvirt_public.syms | 313 ++++++++++++++++++++--------------------
1 file changed, 155 insertions(+), 158 deletions(-)
diff --git a/src/libvirt_public.syms b/src/libvirt_public.syms
index 75f7fdfb0c..f9e0072352 100644
--- a/src/libvirt_public.syms
+++ b/src/libvirt_public.syms
@@ -10,6 +10,8 @@
# soname version info can't enforce this since we never
# change the soname
#
+# Keep this file sorted by version, then by symbols within each version.
+#
LIBVIRT_0.0.3 {
global:
virConnectClose;
@@ -43,44 +45,43 @@ LIBVIRT_0.0.3 {
LIBVIRT_0.0.5 {
global:
- virDomainLookupByUUID;
virDomainGetUUID;
+ virDomainLookupByUUID;
} LIBVIRT_0.0.3;
LIBVIRT_0.1.0 {
global:
+ virConnCopyLastError;
+ virConnGetLastError;
+ virConnResetLastError;
+ virConnSetErrorFunc;
+ virCopyLastError;
+ virDefaultErrorFunc;
+ virDomainReboot;
+ virGetLastError;
virInitialize;
virNodeGetInfo;
- virDomainReboot;
-
- virCopyLastError;
- virConnSetErrorFunc;
- virResetLastError;
virResetError;
- virConnGetLastError;
- virGetLastError;
+ virResetLastError;
virSetErrorFunc;
- virConnCopyLastError;
- virConnResetLastError;
- virDefaultErrorFunc;
} LIBVIRT_0.0.5;
LIBVIRT_0.1.1 {
global:
- virDomainLookupByUUIDString;
+ virConnectListDefinedDomains;
+ virDomainCreate;
+ virDomainDefineXML;
virDomainGetUUIDString;
+ virDomainLookupByUUIDString;
virDomainSetMemory;
- virDomainDefineXML;
- virDomainCreate;
virDomainUndefine;
- virConnectListDefinedDomains;
} LIBVIRT_0.1.0;
LIBVIRT_0.1.4 {
global:
- virDomainSetVcpus;
- virDomainPinVcpu;
virDomainGetVcpus;
+ virDomainPinVcpu;
+ virDomainSetVcpus;
} LIBVIRT_0.1.1;
LIBVIRT_0.1.5 {
@@ -90,39 +91,39 @@ LIBVIRT_0.1.5 {
LIBVIRT_0.1.9 {
global:
- virDomainCoreDump;
virDomainAttachDevice;
+ virDomainCoreDump;
virDomainDetachDevice;
} LIBVIRT_0.1.5;
LIBVIRT_0.2.0 {
global:
- virConnectNumOfNetworks;
+ virConnectListDefinedNetworks;
virConnectListNetworks;
virConnectNumOfDefinedNetworks;
- virConnectListDefinedNetworks;
- virNetworkLookupByName;
- virNetworkLookupByUUID;
- virNetworkLookupByUUIDString;
+ virConnectNumOfNetworks;
+ virNetworkCreate;
virNetworkCreateXML;
virNetworkDefineXML;
- virNetworkUndefine;
- virNetworkCreate;
virNetworkDestroy;
virNetworkFree;
+ virNetworkGetBridgeName;
virNetworkGetName;
virNetworkGetUUID;
virNetworkGetUUIDString;
virNetworkGetXMLDesc;
- virNetworkGetBridgeName;
+ virNetworkLookupByName;
+ virNetworkLookupByUUID;
+ virNetworkLookupByUUIDString;
+ virNetworkUndefine;
} LIBVIRT_0.1.9;
LIBVIRT_0.2.1 {
global:
virConnectGetCapabilities;
virConnectGetMaxVcpus;
- virDomainGetMaxVcpus;
virDomainGetAutostart;
+ virDomainGetMaxVcpus;
virDomainSetAutostart;
virNetworkGetAutostart;
virNetworkSetAutostart;
@@ -130,8 +131,8 @@ LIBVIRT_0.2.1 {
LIBVIRT_0.2.3 {
global:
- virDomainGetSchedulerType;
virDomainGetSchedulerParameters;
+ virDomainGetSchedulerType;
virDomainSetSchedulerParameters;
} LIBVIRT_0.2.1;
@@ -145,9 +146,9 @@ LIBVIRT_0.3.0 {
LIBVIRT_0.3.2 {
global:
- virDomainMigrate;
virDomainBlockStats;
virDomainInterfaceStats;
+ virDomainMigrate;
} LIBVIRT_0.3.0;
LIBVIRT_0.3.3 {
@@ -158,52 +159,51 @@ LIBVIRT_0.3.3 {
LIBVIRT_0.4.0 {
global:
- virConnectOpenAuth;
virConnectAuthPtrDefault;
+ virConnectOpenAuth;
} LIBVIRT_0.3.3;
LIBVIRT_0.4.1 {
global:
- virStoragePoolGetConnect;
- virConnectNumOfStoragePools;
- virConnectNumOfDefinedStoragePools;
- virConnectListStoragePools;
virConnectListDefinedStoragePools;
- virStoragePoolLookupByName;
- virStoragePoolLookupByUUID;
- virStoragePoolLookupByUUIDString;
- virStoragePoolLookupByVolume;
+ virConnectListStoragePools;
+ virConnectNumOfDefinedStoragePools;
+ virConnectNumOfStoragePools;
+ virStoragePoolBuild;
+ virStoragePoolCreate;
virStoragePoolCreateXML;
virStoragePoolDefineXML;
- virStoragePoolUndefine;
- virStoragePoolCreate;
- virStoragePoolBuild;
- virStoragePoolDestroy;
virStoragePoolDelete;
- virStoragePoolRefresh;
+ virStoragePoolDestroy;
virStoragePoolFree;
+ virStoragePoolGetAutostart;
+ virStoragePoolGetConnect;
+ virStoragePoolGetInfo;
virStoragePoolGetName;
virStoragePoolGetUUID;
virStoragePoolGetUUIDString;
- virStoragePoolGetInfo;
virStoragePoolGetXMLDesc;
- virStoragePoolSetAutostart;
- virStoragePoolGetAutostart;
- virStoragePoolNumOfVolumes;
virStoragePoolListVolumes;
-
- virStorageVolGetConnect;
- virStorageVolLookupByName;
- virStorageVolLookupByKey;
- virStorageVolLookupByPath;
+ virStoragePoolLookupByName;
+ virStoragePoolLookupByUUID;
+ virStoragePoolLookupByUUIDString;
+ virStoragePoolLookupByVolume;
+ virStoragePoolNumOfVolumes;
+ virStoragePoolRefresh;
+ virStoragePoolSetAutostart;
+ virStoragePoolUndefine;
virStorageVolCreateXML;
virStorageVolDelete;
virStorageVolFree;
- virStorageVolGetName;
- virStorageVolGetKey;
+ virStorageVolGetConnect;
virStorageVolGetInfo;
- virStorageVolGetXMLDesc;
+ virStorageVolGetKey;
+ virStorageVolGetName;
virStorageVolGetPath;
+ virStorageVolGetXMLDesc;
+ virStorageVolLookupByKey;
+ virStorageVolLookupByName;
+ virStorageVolLookupByPath;
} LIBVIRT_0.4.0;
LIBVIRT_0.4.2 {
@@ -219,21 +219,19 @@ LIBVIRT_0.4.5 {
LIBVIRT_0.5.0 {
global:
+ virConnectDomainEventDeregister;
+ virConnectDomainEventRegister;
virDomainCreateXML;
virEventRegisterImpl;
- virConnectDomainEventRegister;
- virConnectDomainEventDeregister;
-
- virNodeNumOfDevices;
- virNodeListDevices;
- virNodeDeviceLookupByName;
virNodeDeviceFree;
- virNodeDeviceGetXMLDesc;
virNodeDeviceGetName;
virNodeDeviceGetParent;
- virNodeDeviceNumOfCaps;
+ virNodeDeviceGetXMLDesc;
virNodeDeviceListCaps;
-
+ virNodeDeviceLookupByName;
+ virNodeDeviceNumOfCaps;
+ virNodeListDevices;
+ virNodeNumOfDevices;
} LIBVIRT_0.4.5;
LIBVIRT_0.6.0 {
@@ -241,21 +239,20 @@ LIBVIRT_0.6.0 {
virConnectRef;
virDomainRef;
virNetworkRef;
+ virNodeDeviceRef;
virStoragePoolRef;
virStorageVolRef;
- virNodeDeviceRef;
-
} LIBVIRT_0.5.0;
LIBVIRT_0.6.1 {
global:
+ virDomainGetSecurityLabel;
virFreeError;
- virSaveLastError;
virNodeDeviceDettach;
virNodeDeviceReAttach;
virNodeDeviceReset;
- virDomainGetSecurityLabel;
virNodeGetSecurityModel;
+ virSaveLastError;
} LIBVIRT_0.6.0;
LIBVIRT_0.6.3 {
@@ -266,67 +263,67 @@ LIBVIRT_0.6.3 {
LIBVIRT_0.6.4 {
global:
- virInterfaceGetConnect;
- virConnectNumOfInterfaces;
+ virConnectDomainXMLFromNative;
+ virConnectDomainXMLToNative;
virConnectListInterfaces;
- virInterfaceLookupByName;
- virInterfaceLookupByMACString;
- virInterfaceGetName;
+ virConnectNumOfInterfaces;
+ virInterfaceCreate;
+ virInterfaceDefineXML;
+ virInterfaceDestroy;
+ virInterfaceFree;
+ virInterfaceGetConnect;
virInterfaceGetMACString;
+ virInterfaceGetName;
virInterfaceGetXMLDesc;
+ virInterfaceLookupByMACString;
+ virInterfaceLookupByName;
virInterfaceRef;
- virInterfaceFree;
- virInterfaceDefineXML;
virInterfaceUndefine;
- virInterfaceCreate;
- virInterfaceDestroy;
virStorageVolCreateXMLFrom;
- virConnectDomainXMLFromNative;
- virConnectDomainXMLToNative;
} LIBVIRT_0.6.3;
LIBVIRT_0.7.0 {
global:
- virConnectNumOfDefinedInterfaces;
virConnectListDefinedInterfaces;
+ virConnectNumOfDefinedInterfaces;
} LIBVIRT_0.6.4;
LIBVIRT_0.7.1 {
global:
- virSecretGetConnect;
- virConnectNumOfSecrets;
virConnectListSecrets;
- virSecretLookupByUUID;
- virSecretLookupByUUIDString;
- virSecretLookupByUsage;
+ virConnectNumOfSecrets;
virSecretDefineXML;
+ virSecretFree;
+ virSecretGetConnect;
virSecretGetUUID;
virSecretGetUUIDString;
- virSecretGetUsageType;
virSecretGetUsageID;
+ virSecretGetUsageType;
+ virSecretGetValue;
virSecretGetXMLDesc;
+ virSecretLookupByUUID;
+ virSecretLookupByUUIDString;
+ virSecretLookupByUsage;
+ virSecretRef;
virSecretSetValue;
- virSecretGetValue;
virSecretUndefine;
- virSecretRef;
- virSecretFree;
} LIBVIRT_0.7.0;
LIBVIRT_0.7.2 {
global:
- virStreamNew;
- virStreamRef;
- virStreamSend;
- virStreamRecv;
- virStreamSendAll;
- virStreamRecvAll;
+ virDomainMigrateToURI;
+ virStreamAbort;
virStreamEventAddCallback;
- virStreamEventUpdateCallback;
virStreamEventRemoveCallback;
+ virStreamEventUpdateCallback;
virStreamFinish;
- virStreamAbort;
virStreamFree;
- virDomainMigrateToURI;
+ virStreamNew;
+ virStreamRecv;
+ virStreamRecvAll;
+ virStreamRef;
+ virStreamSend;
+ virStreamSendAll;
} LIBVIRT_0.7.1;
LIBVIRT_0.7.3 {
@@ -336,11 +333,11 @@ LIBVIRT_0.7.3 {
virConnectIsSecure;
virDomainIsActive;
virDomainIsPersistent;
+ virInterfaceIsActive;
virNetworkIsActive;
virNetworkIsPersistent;
virStoragePoolIsActive;
virStoragePoolIsPersistent;
- virInterfaceIsActive;
} LIBVIRT_0.7.2;
LIBVIRT_0.7.5 {
@@ -351,46 +348,46 @@ LIBVIRT_0.7.5 {
LIBVIRT_0.7.7 {
global:
+ virConnectBaselineCPU;
+ virDomainAbortJob;
virDomainAttachDeviceFlags;
virDomainDetachDeviceFlags;
- virConnectBaselineCPU;
virDomainGetJobInfo;
- virDomainAbortJob;
} LIBVIRT_0.7.5;
LIBVIRT_0.8.0 {
global:
- virStorageVolWipe;
- virDomainMigrateSetMaxDowntime;
- virConnectDomainEventRegisterAny;
virConnectDomainEventDeregisterAny;
- virDomainUpdateDeviceFlags;
+ virConnectDomainEventRegisterAny;
virConnectListNWFilters;
virConnectNumOfNWFilters;
- virNWFilterLookupByName;
- virNWFilterLookupByUUID;
- virNWFilterLookupByUUIDString;
+ virDomainHasCurrentSnapshot;
+ virDomainHasManagedSaveImage;
+ virDomainManagedSave;
+ virDomainManagedSaveRemove;
+ virDomainMigrateSetMaxDowntime;
+ virDomainRevertToSnapshot;
+ virDomainSnapshotCreateXML;
+ virDomainSnapshotCurrent;
+ virDomainSnapshotDelete;
+ virDomainSnapshotFree;
+ virDomainSnapshotGetXMLDesc;
+ virDomainSnapshotListNames;
+ virDomainSnapshotLookupByName;
+ virDomainSnapshotNum;
+ virDomainUpdateDeviceFlags;
+ virNWFilterDefineXML;
virNWFilterFree;
virNWFilterGetName;
virNWFilterGetUUID;
virNWFilterGetUUIDString;
virNWFilterGetXMLDesc;
+ virNWFilterLookupByName;
+ virNWFilterLookupByUUID;
+ virNWFilterLookupByUUIDString;
virNWFilterRef;
- virNWFilterDefineXML;
virNWFilterUndefine;
- virDomainManagedSave;
- virDomainHasManagedSaveImage;
- virDomainManagedSaveRemove;
- virDomainSnapshotCreateXML;
- virDomainSnapshotGetXMLDesc;
- virDomainSnapshotNum;
- virDomainSnapshotListNames;
- virDomainSnapshotLookupByName;
- virDomainHasCurrentSnapshot;
- virDomainSnapshotCurrent;
- virDomainRevertToSnapshot;
- virDomainSnapshotDelete;
- virDomainSnapshotFree;
+ virStorageVolWipe;
} LIBVIRT_0.7.7;
@@ -407,16 +404,16 @@ LIBVIRT_0.8.2 {
LIBVIRT_0.8.5 {
global:
- virDomainSetMemoryParameters;
virDomainGetMemoryParameters;
virDomainGetVcpusFlags;
+ virDomainSetMemoryParameters;
virDomainSetVcpusFlags;
} LIBVIRT_0.8.2;
LIBVIRT_0.8.6 {
global:
- virDomainOpenConsole;
virDomainIsUpdated;
+ virDomainOpenConsole;
} LIBVIRT_0.8.5;
LIBVIRT_0.8.8 {
@@ -468,16 +465,16 @@ LIBVIRT_0.9.3 {
LIBVIRT_0.9.4 {
global:
+ virDomainBlockJobAbort;
+ virDomainBlockJobSetSpeed;
+ virDomainBlockPull;
+ virDomainDestroyFlags;
+ virDomainGetBlockJobInfo;
virDomainRestoreFlags;
virDomainSaveFlags;
virDomainSaveImageDefineXML;
virDomainSaveImageGetXMLDesc;
virDomainUndefineFlags;
- virDomainDestroyFlags;
- virDomainBlockJobAbort;
- virDomainGetBlockJobInfo;
- virDomainBlockJobSetSpeed;
- virDomainBlockPull;
} LIBVIRT_0.9.3;
LIBVIRT_0.9.5 {
@@ -546,20 +543,20 @@ LIBVIRT_0.9.13 {
LIBVIRT_0.10.0 {
global:
- virDomainGetHostname;
virConnectRegisterCloseCallback;
virConnectUnregisterCloseCallback;
+ virDomainGetEmulatorPinInfo;
+ virDomainGetHostname;
virDomainGetSecurityLabelList;
virDomainPinEmulator;
- virDomainGetEmulatorPinInfo;
} LIBVIRT_0.9.13;
LIBVIRT_0.10.2 {
global:
virConnectListAllInterfaces;
+ virConnectListAllNWFilters;
virConnectListAllNetworks;
virConnectListAllNodeDevices;
- virConnectListAllNWFilters;
virConnectListAllSecrets;
virConnectListAllStoragePools;
virDomainBlockCommit;
@@ -641,8 +638,8 @@ LIBVIRT_1.1.3 {
LIBVIRT_1.2.1 {
global:
- virConnectNetworkEventRegisterAny;
virConnectNetworkEventDeregisterAny;
+ virConnectNetworkEventRegisterAny;
} LIBVIRT_1.1.3;
LIBVIRT_1.2.3 {
@@ -660,9 +657,9 @@ LIBVIRT_1.2.5 {
LIBVIRT_1.2.6 {
global:
- virNodeGetFreePages;
virNetworkDHCPLeaseFree;
virNetworkGetDHCPLeases;
+ virNodeGetFreePages;
} LIBVIRT_1.2.5;
LIBVIRT_1.2.7 {
@@ -697,11 +694,11 @@ LIBVIRT_1.2.12 {
LIBVIRT_1.2.14 {
global:
- virDomainIOThreadInfoFree;
virDomainGetIOThreadInfo;
- virDomainPinIOThread;
+ virDomainIOThreadInfoFree;
virDomainInterfaceAddresses;
virDomainInterfaceFree;
+ virDomainPinIOThread;
} LIBVIRT_1.2.12;
LIBVIRT_1.2.15 {
@@ -727,30 +724,30 @@ LIBVIRT_1.2.19 {
LIBVIRT_1.3.3 {
global:
- virDomainMigrateStartPostCopy;
virDomainGetPerfEvents;
+ virDomainMigrateStartPostCopy;
virDomainSetPerfEvents;
} LIBVIRT_1.2.19;
LIBVIRT_2.0.0 {
global:
- virConnectStoragePoolEventRegisterAny;
virConnectStoragePoolEventDeregisterAny;
+ virConnectStoragePoolEventRegisterAny;
virDomainGetGuestVcpus;
virDomainSetGuestVcpus;
} LIBVIRT_1.3.3;
LIBVIRT_2.2.0 {
global:
- virConnectNodeDeviceEventRegisterAny;
virConnectNodeDeviceEventDeregisterAny;
+ virConnectNodeDeviceEventRegisterAny;
} LIBVIRT_2.0.0;
LIBVIRT_3.0.0 {
global:
- virStorageVolGetInfoFlags;
- virConnectSecretEventRegisterAny;
virConnectSecretEventDeregisterAny;
+ virConnectSecretEventRegisterAny;
+ virStorageVolGetInfoFlags;
} LIBVIRT_2.2.0;
LIBVIRT_3.1.0 {
@@ -770,9 +767,9 @@ LIBVIRT_3.4.0 {
LIBVIRT_3.7.0 {
global:
- virDomainMigrateGetMaxDowntime;
- virDomainManagedSaveGetXMLDesc;
virDomainManagedSaveDefineXML;
+ virDomainManagedSaveGetXMLDesc;
+ virDomainMigrateGetMaxDowntime;
} LIBVIRT_3.4.0;
LIBVIRT_3.9.0 {
@@ -787,26 +784,26 @@ LIBVIRT_4.1.0 {
LIBVIRT_4.4.0 {
global:
- virDomainDetachDeviceAlias;
- virConnectCompareHypervisorCPU;
virConnectBaselineHypervisorCPU;
+ virConnectCompareHypervisorCPU;
+ virDomainDetachDeviceAlias;
} LIBVIRT_4.1.0;
LIBVIRT_4.5.0 {
global:
+ virConnectListAllNWFilterBindings;
+ virDomainGetLaunchSecurityInfo;
virGetLastErrorCode;
virGetLastErrorDomain;
- virNodeGetSEVInfo;
- virDomainGetLaunchSecurityInfo;
- virNWFilterBindingLookupByPortDev;
- virConnectListAllNWFilterBindings;
virNWFilterBindingCreateXML;
- virNWFilterBindingGetXMLDesc;
virNWFilterBindingDelete;
- virNWFilterBindingRef;
virNWFilterBindingFree;
- virNWFilterBindingGetPortDev;
virNWFilterBindingGetFilterName;
+ virNWFilterBindingGetPortDev;
+ virNWFilterBindingGetXMLDesc;
+ virNWFilterBindingLookupByPortDev;
+ virNWFilterBindingRef;
+ virNodeGetSEVInfo;
} LIBVIRT_4.4.0;
LIBVIRT_4.10.0 {
@@ -821,18 +818,18 @@ LIBVIRT_5.2.0 {
LIBVIRT_5.5.0 {
virNetworkListAllPorts;
- virNetworkPortLookupByUUID;
- virNetworkPortLookupByUUIDString;
virNetworkPortCreateXML;
+ virNetworkPortDelete;
+ virNetworkPortFree;
virNetworkPortGetNetwork;
virNetworkPortGetParameters;
- virNetworkPortGetXMLDesc;
virNetworkPortGetUUID;
virNetworkPortGetUUIDString;
- virNetworkPortDelete;
- virNetworkPortFree;
+ virNetworkPortGetXMLDesc;
+ virNetworkPortLookupByUUID;
+ virNetworkPortLookupByUUIDString;
virNetworkPortRef;
virNetworkPortSetParameters;
} LIBVIRT_5.2.0;
-# .... define new API here using predicted next version number ....
+# .... define new API in sorted order using predicted next version number ....
--
2.20.1
5 years, 6 months
[libvirt] [PATCH 0/2] A couple coverity patches
by John Ferlan
Coverity has been tripped up a few more times recently...
The memory leak patch probably I what I noted from Jiri's recent
CPU series. The return value check is older. It wasn't clear
though if the intention of the module was to ignore errors
so I just chose to error out like other similar callers. If
there's a better way - then other patches can be posted.
John Ferlan (2):
cpu_x86: Fix memory leak - virCPUx86GetHost
cpu_x86: Handle error in x86DataToCPU when calling x86DataAdd
src/cpu/cpu_x86.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
--
2.20.1
5 years, 6 months