[libvirt] [PATCH 0/4] libxl: override HAVE_PVUSB in test suite
by Cole Robinson
There's two different domain capabilities test cases for libxl,
depending on whether host libxl supports PVUSB or not. This causes
pain when extending domain capabilities XML, because at least one
file always needs to be updated by hand.
This series adds a wrapper function for checking PVUSB, and adjusts
the libxl driver to use it when building domaincapabilities output.
We then mock the new function in the test suite to always return
true, and ditch the !PVUSB test cases
Cole Robinson (4):
tests: Rename virmocklibxl.c -> libxlmock.c
tests: Create a shared library with libxl driver
libxl: Break out libxlCapsHasPVUSB
tests: domcaps: Remove dependency on libxl PVUSB support
src/libxl/libxl_capabilities.c | 16 +++-
src/libxl/libxl_capabilities.h | 1 +
tests/Makefile.am | 22 +++---
tests/domaincapsmock.c | 11 +++
.../domaincapsschemadata/libxl-xenfv-usb.xml | 78 -------------------
tests/domaincapsschemadata/libxl-xenfv.xml | 1 +
.../domaincapsschemadata/libxl-xenpv-usb.xml | 68 ----------------
tests/domaincapsschemadata/libxl-xenpv.xml | 1 +
tests/domaincapstest.c | 12 +--
tests/{virmocklibxl.c => libxlmock.c} | 2 +-
tests/libxlxml2domconfigtest.c | 2 +-
11 files changed, 43 insertions(+), 171 deletions(-)
delete mode 100644 tests/domaincapsschemadata/libxl-xenfv-usb.xml
delete mode 100644 tests/domaincapsschemadata/libxl-xenpv-usb.xml
rename tests/{virmocklibxl.c => libxlmock.c} (98%)
--
2.20.1
5 years, 9 months
[libvirt] [PATCH 0/9] rpc: make client streams multi-thread safer
by Nikolay Shirokovskiy
Nikolay Shirokovskiy (9):
rpc: fix race on stream abort/finish and server side abort
rpc: use single function to send stream messages
rpc: remove unused virNetClientSendNoReply
rpc: fix propagation of errors from server
rpc: add mising locking in virNetClientStreamRecvHole
rpc: client: incapsulate error checks
rpc: client: don't set incomingEOF on errors
rpc: client stream: dispose private data on stream dispose
rpc: client: stream: fix multi thread abort/finish
src/datatypes.c | 2 +
src/datatypes.h | 1 +
src/libvirt_remote.syms | 6 +-
src/remote/remote_driver.c | 27 ++------
src/rpc/gendispatch.pl | 3 +-
src/rpc/virnetclient.c | 146 ++++++++++++++++++++++---------------------
src/rpc/virnetclient.h | 6 +-
src/rpc/virnetclientstream.c | 110 ++++++++++++++++++++++++--------
src/rpc/virnetclientstream.h | 17 ++++-
9 files changed, 188 insertions(+), 130 deletions(-)
--
1.8.3.1
5 years, 9 months
[libvirt] [PATCH 0/8] qemu: Add support for setting post-copy migration bandwidth
by Jiri Denemark
This series adds a new VIR_MIGRATE_PARAM_BANDWIDTH_POSTCOPY typed
parameter for virDomainMigrate3 and virDomainMigrateToURI3 for setting
maximum post-copy migration bandwidth.
In case the initial VIR_MIGRATE_PARAM_BANDWIDTH_POSTCOPY value turns out
to be suboptimal a new VIR_DOMAIN_MIGRATE_MAX_SPEED_POSTCOPY flag for
virDomainMigrateSetMaxSpeed and virDomainMigrateGetMaxSpeed may be used
to set/get the maximum post-copy migration bandwidth while migration is
already running.
Jiri Denemark (8):
qemu: Use C99 initializers for qemuMigrationParamsTPMap
qemu: Add optional unit to qemuMigrationParamsTPMapItem
qemu: Rework qemuDomainMigrateSetMaxSpeed
qemu: Make migration params usable outside migration
Public API for post-copy migration bandwidth
qemu: Implement VIR_MIGRATE_PARAM_BANDWIDTH_POSTCOPY
qemu: Implement VIR_DOMAIN_MIGRATE_MAX_SPEED_POSTCOPY flag
virsh: Add support for setting post-copy migration bandwidth
include/libvirt/libvirt-domain.h | 15 ++++
src/libvirt-domain.c | 11 ++-
src/qemu/qemu_driver.c | 118 +++++++++++++++++++++++-------
src/qemu/qemu_migration.h | 1 +
src/qemu/qemu_migration_params.c | 122 +++++++++++++++++++++++--------
src/qemu/qemu_migration_params.h | 10 +++
tools/virsh-domain.c | 33 ++++++++-
tools/virsh.pod | 15 +++-
8 files changed, 260 insertions(+), 65 deletions(-)
--
2.20.1
5 years, 9 months
[libvirt] [PATCH 0/2] A couple of capabilities related adjustments
by John Ferlan
Peeling the onion in my series to update the QEMU capabilites replies:
https://www.redhat.com/archives/libvir-list/2019-January/msg00793.html
resulted in consideration of a possible alternative to how the SEV
capability checking "works". As it turns out, the initial changes
"massaged" the .replies output to add a "fake" reply on an Intel CPU
for what amounts to AMD specific output. This naturally resulted in
a "problem" when the next batch of a capabilites was created and
there was no sev output, so an adjustment was made to limit what
was tested to one capabilities version.
Since there isn't separate Intel/AMD x86_64 output, the first patch
in the series will alter the return for virQEMUCapsProbeQMPSEVCapabilities
so that 0 would "change" into 1 for the mocked environment and allow
the sev-guest bit to be set which allows QEMU_CAPS_SEV_GUEST to be set
for any x86_64 arch environment. This only affects how qemuxml2argvtest
handles generation of DO_TEST_CAPS_LATEST for launch-security-sev.
The XML generated isn't modified, nor is the reply output data since
that's separate. The key is the "0" return meaning a GenericError
which is assumed to be returned when compiled-in support for SEV isn't
there, but *could* be if the underlying hardware arch supported it.
For the test purpose we have, that doesn't matter unless someone wants
to go through the trouble of separating the caps*.replies files into
"Intel" and "AMD" specific output.
So yes a "workaround" of sorts, but nonetheless an alternative to the
current static checking of what's been deemed incorrect reply data.
The second somewhat unrelated patch is fallout of the review discussion
about having a consistent process. I suspect it's a "starting point"
from which we can evolve to create a consistent/repeatable process
to create caps*.replies.
John Ferlan (2):
tests: Add mocking for qemuMonitorJSONGetSEVCapabilities
tests: Document procedure to build QEMU for *.replies generation
tests/qemucapabilitiestest.c | 34 ++++++++++++-
tests/qemucapsprobemock.c | 50 +++++++++++++++++++
...=> launch-security-sev.x86_64-latest.args} | 0
tests/qemuxml2argvtest.c | 2 +-
4 files changed, 83 insertions(+), 3 deletions(-)
rename tests/qemuxml2argvdata/{launch-security-sev.x86_64-2.12.0.args => launch-security-sev.x86_64-latest.args} (100%)
--
2.20.1
5 years, 9 months
[libvirt] [PATCH] docs: storage: owner/group default to libvirtd UID/GID
by Cole Robinson
Commit fafcc818f changed the docs to say that when creating a
pool directory or file volume with no owner/group specified, they
will be inherited from the parent directory. This isn't correct
now and doesn't seem to have ever been correct
In reality default owner/group is whatever UID/GID libvirtd is
running as
Signed-off-by: Cole Robinson <crobinso(a)redhat.com>
---
docs/formatstorage.html.in | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/docs/formatstorage.html.in b/docs/formatstorage.html.in
index 6ebd23549f..968651330f 100644
--- a/docs/formatstorage.html.in
+++ b/docs/formatstorage.html.in
@@ -478,8 +478,8 @@
The <code>owner</code> element contains the numeric user ID.
The <code>group</code> element contains the numeric group ID.
If <code>owner</code> or <code>group</code> aren't specified when
- creating a directory, the values are inherited from the parent
- directory. The <code>label</code> element contains the MAC (eg SELinux)
+ creating a directory, the UID and GID of the libvirtd process are used.
+ The <code>label</code> element contains the MAC (eg SELinux)
label string.
<span class="since">Since 0.4.1</span>
For running directory or filesystem based pools, these fields
@@ -776,8 +776,8 @@
The <code>owner</code> element contains the numeric user ID.
The <code>group</code> element contains the numeric group ID.
If <code>owner</code> or <code>group</code> aren't specified when
- creating a supported volume, the values are inherited from the parent
- directory. The <code>label</code> element contains the MAC (eg SELinux)
+ creating a supported volume, the UID and GID of the libvirtd process
+ are used. The <code>label</code> element contains the MAC (eg SELinux)
label string.
For existing directory or filesystem based volumes, these fields
will be filled with the values used by the existing file.
--
2.20.1
5 years, 9 months
[libvirt] [PATCH 0/3] qemu: Add support for parallel migration
by Jiri Denemark
This series adds a new VIR_MIGRATE_PARALLEL flag for migration APIs
which will ask the hypervisor to use multiple parallel connections for
migrating a domain. The number of parallel connections can be set using
VIR_MIGRATE_PARAM_PARALLEL_CONNECTIONS typed parameter.
Jiri Denemark (3):
Public API for parallel migration
qemu: Add support for parallel migration
virsh: Add options for parallel migration
include/libvirt/libvirt-domain.h | 14 ++++++++++++++
src/qemu/qemu_migration.c | 9 ++++++---
src/qemu/qemu_migration.h | 5 ++++-
src/qemu/qemu_migration_params.c | 18 ++++++++++++++++++
src/qemu/qemu_migration_params.h | 2 ++
tools/virsh-domain.c | 19 +++++++++++++++++++
tools/virsh.pod | 7 +++++++
7 files changed, 70 insertions(+), 4 deletions(-)
--
2.20.1
5 years, 9 months
[libvirt] [PATCH 0/9] qemu: Make qemu_domain more organized and consistent
by Andrea Bolognani
A while ago I was looking at the code and got annoyed by the lack
of consistency, both internal and external. This series addresses
most of it.
Andrea Bolognani (9):
qemu: Remove redundant condition
qemu: Use more specific prefixes
qemu: Move functions around
qemu: Add arch parameter to qemuDomainMachine*()
qemu: Add arch checks to qemuDomainMachine*()
qemu: Remove useless ARCH_IS_X86() call
qemu: Make most qemuDomainMachine*() functions static
qemu: Move qemuDomainSupportsPCI() to qemu_domain
qemu: Unify style for qemuDomain*()
src/qemu/qemu_capabilities.c | 10 +-
src/qemu/qemu_domain.c | 250 +++++++++++++++++++++------------
src/qemu/qemu_domain.h | 29 ++--
src/qemu/qemu_domain_address.c | 22 ---
4 files changed, 175 insertions(+), 136 deletions(-)
--
2.20.1
5 years, 9 months
[libvirt] [PATCH] util: Use a semicolon for all VIR_DEFINE_AUTOPTR_FUNC
by John Ferlan
For consistency, let's use the semicolon for all definitions.
Signed-off-by: John Ferlan <jferlan(a)redhat.com>
---
As discussed in the other series -
src/qemu/qemu_migration_params.h | 2 +-
src/util/virauthconfig.h | 2 +-
src/util/virbitmap.h | 2 +-
src/util/virbuffer.c | 2 +-
src/util/virbuffer.h | 2 +-
src/util/vircommand.h | 2 +-
src/util/virerror.h | 2 +-
src/util/virfile.h | 2 +-
src/util/virfirewall.h | 2 +-
src/util/virhash.h | 2 +-
src/util/virjson.h | 2 +-
src/util/virmacaddr.h | 2 +-
src/util/virmdev.h | 4 ++--
src/util/virnetdev.c | 2 +-
src/util/virnetdev.h | 2 +-
src/util/virnetdevip.h | 4 ++--
src/util/virnetdevvlan.h | 2 +-
src/util/virnetlink.c | 2 +-
src/util/virnetlink.h | 2 +-
src/util/virpci.h | 6 +++---
src/util/virperf.h | 2 +-
src/util/virscsi.c | 2 +-
src/util/virscsi.h | 2 +-
src/util/virscsivhost.h | 2 +-
src/util/virsocketaddr.h | 2 +-
src/util/virstring.h | 2 +-
src/util/virusb.h | 2 +-
27 files changed, 31 insertions(+), 31 deletions(-)
diff --git a/src/qemu/qemu_migration_params.h b/src/qemu/qemu_migration_params.h
index 2460684a00..233ebe772b 100644
--- a/src/qemu/qemu_migration_params.h
+++ b/src/qemu/qemu_migration_params.h
@@ -90,7 +90,7 @@ qemuMigrationParamsNew(void);
void
qemuMigrationParamsFree(qemuMigrationParamsPtr migParams);
-VIR_DEFINE_AUTOPTR_FUNC(qemuMigrationParams, qemuMigrationParamsFree)
+VIR_DEFINE_AUTOPTR_FUNC(qemuMigrationParams, qemuMigrationParamsFree);
int
qemuMigrationParamsApply(virQEMUDriverPtr driver,
diff --git a/src/util/virauthconfig.h b/src/util/virauthconfig.h
index 93bb434616..603ef89d25 100644
--- a/src/util/virauthconfig.h
+++ b/src/util/virauthconfig.h
@@ -41,6 +41,6 @@ int virAuthConfigLookup(virAuthConfigPtr auth,
const char *credname,
const char **value);
-VIR_DEFINE_AUTOPTR_FUNC(virAuthConfig, virAuthConfigFree)
+VIR_DEFINE_AUTOPTR_FUNC(virAuthConfig, virAuthConfigFree);
#endif /* LIBVIRT_VIRAUTHCONFIG_H */
diff --git a/src/util/virbitmap.h b/src/util/virbitmap.h
index dfb30b3bc8..c54e203971 100644
--- a/src/util/virbitmap.h
+++ b/src/util/virbitmap.h
@@ -154,6 +154,6 @@ void virBitmapSubtract(virBitmapPtr a, virBitmapPtr b)
void virBitmapShrink(virBitmapPtr map, size_t b);
-VIR_DEFINE_AUTOPTR_FUNC(virBitmap, virBitmapFree)
+VIR_DEFINE_AUTOPTR_FUNC(virBitmap, virBitmapFree);
#endif /* LIBVIRT_VIRBITMAP_H */
diff --git a/src/util/virbuffer.c b/src/util/virbuffer.c
index 95c0dd1b96..01d71f1b59 100644
--- a/src/util/virbuffer.c
+++ b/src/util/virbuffer.c
@@ -661,7 +661,7 @@ virBufferEscapePairFree(virBufferEscapePairPtr pair)
VIR_FREE(pair);
}
-VIR_DEFINE_AUTOPTR_FUNC(virBufferEscapePair, virBufferEscapePairFree)
+VIR_DEFINE_AUTOPTR_FUNC(virBufferEscapePair, virBufferEscapePairFree);
/**
diff --git a/src/util/virbuffer.h b/src/util/virbuffer.h
index c3703710b7..8bf6bee644 100644
--- a/src/util/virbuffer.h
+++ b/src/util/virbuffer.h
@@ -119,6 +119,6 @@ int virBufferGetIndent(const virBuffer *buf, bool dynamic);
void virBufferTrim(virBufferPtr buf, const char *trim, int len);
void virBufferAddStr(virBufferPtr buf, const char *str);
-VIR_DEFINE_AUTOPTR_FUNC(virBuffer, virBufferFreeAndReset)
+VIR_DEFINE_AUTOPTR_FUNC(virBuffer, virBufferFreeAndReset);
#endif /* LIBVIRT_VIRBUFFER_H */
diff --git a/src/util/vircommand.h b/src/util/vircommand.h
index dbf5041890..99849051f8 100644
--- a/src/util/vircommand.h
+++ b/src/util/vircommand.h
@@ -219,6 +219,6 @@ int virCommandRunNul(virCommandPtr cmd,
virCommandRunNulFunc func,
void *data);
-VIR_DEFINE_AUTOPTR_FUNC(virCommand, virCommandFree)
+VIR_DEFINE_AUTOPTR_FUNC(virCommand, virCommandFree);
#endif /* LIBVIRT_VIRCOMMAND_H */
diff --git a/src/util/virerror.h b/src/util/virerror.h
index d9d3109a4c..213bc3f606 100644
--- a/src/util/virerror.h
+++ b/src/util/virerror.h
@@ -206,6 +206,6 @@ bool virLastErrorIsSystemErrno(int errnum);
void virErrorPreserveLast(virErrorPtr *saveerr);
void virErrorRestore(virErrorPtr *savederr);
-VIR_DEFINE_AUTOPTR_FUNC(virError, virFreeError)
+VIR_DEFINE_AUTOPTR_FUNC(virError, virFreeError);
#endif /* LIBVIRT_VIRERROR_H */
diff --git a/src/util/virfile.h b/src/util/virfile.h
index 65432da13a..be612af770 100644
--- a/src/util/virfile.h
+++ b/src/util/virfile.h
@@ -383,7 +383,7 @@ int virFileInData(int fd,
int *inData,
long long *length);
-VIR_DEFINE_AUTOPTR_FUNC(virFileWrapperFd, virFileWrapperFdFree)
+VIR_DEFINE_AUTOPTR_FUNC(virFileWrapperFd, virFileWrapperFdFree);
int virFileGetXAttr(const char *path,
const char *name,
diff --git a/src/util/virfirewall.h b/src/util/virfirewall.h
index 2a6fc30eb7..e3ad1adb6b 100644
--- a/src/util/virfirewall.h
+++ b/src/util/virfirewall.h
@@ -115,6 +115,6 @@ int virFirewallApply(virFirewallPtr firewall);
void virFirewallSetLockOverride(bool avoid);
-VIR_DEFINE_AUTOPTR_FUNC(virFirewall, virFirewallFree)
+VIR_DEFINE_AUTOPTR_FUNC(virFirewall, virFirewallFree);
#endif /* LIBVIRT_VIRFIREWALL_H */
diff --git a/src/util/virhash.h b/src/util/virhash.h
index 0c849561f8..2df1a5d12a 100644
--- a/src/util/virhash.h
+++ b/src/util/virhash.h
@@ -197,6 +197,6 @@ void *virHashSearch(const virHashTable *table, virHashSearcher iter,
/* Convenience for when VIR_FREE(value) is sufficient as a data freer. */
void virHashValueFree(void *value, const void *name);
-VIR_DEFINE_AUTOPTR_FUNC(virHashTable, virHashFree)
+VIR_DEFINE_AUTOPTR_FUNC(virHashTable, virHashFree);
#endif /* LIBVIRT_VIRHASH_H */
diff --git a/src/util/virjson.h b/src/util/virjson.h
index d815e60de9..3dee103aba 100644
--- a/src/util/virjson.h
+++ b/src/util/virjson.h
@@ -158,6 +158,6 @@ char *virJSONStringReformat(const char *jsonstr, bool pretty);
virJSONValuePtr virJSONValueObjectDeflatten(virJSONValuePtr json);
-VIR_DEFINE_AUTOPTR_FUNC(virJSONValue, virJSONValueFree)
+VIR_DEFINE_AUTOPTR_FUNC(virJSONValue, virJSONValueFree);
#endif /* LIBVIRT_VIRJSON_H */
diff --git a/src/util/virmacaddr.h b/src/util/virmacaddr.h
index 3999de3421..1deaf087e0 100644
--- a/src/util/virmacaddr.h
+++ b/src/util/virmacaddr.h
@@ -64,6 +64,6 @@ bool virMacAddrIsMulticast(const virMacAddr *addr);
bool virMacAddrIsBroadcastRaw(const unsigned char s[VIR_MAC_BUFLEN]);
void virMacAddrFree(virMacAddrPtr addr);
-VIR_DEFINE_AUTOPTR_FUNC(virMacAddr, virMacAddrFree)
+VIR_DEFINE_AUTOPTR_FUNC(virMacAddr, virMacAddrFree);
#endif /* LIBVIRT_VIRMACADDR_H */
diff --git a/src/util/virmdev.h b/src/util/virmdev.h
index aafc8b9317..d787d354e4 100644
--- a/src/util/virmdev.h
+++ b/src/util/virmdev.h
@@ -137,7 +137,7 @@ int
virMediatedDeviceTypeReadAttrs(const char *sysfspath,
virMediatedDeviceTypePtr *type);
-VIR_DEFINE_AUTOPTR_FUNC(virMediatedDevice, virMediatedDeviceFree)
-VIR_DEFINE_AUTOPTR_FUNC(virMediatedDeviceType, virMediatedDeviceTypeFree)
+VIR_DEFINE_AUTOPTR_FUNC(virMediatedDevice, virMediatedDeviceFree);
+VIR_DEFINE_AUTOPTR_FUNC(virMediatedDeviceType, virMediatedDeviceTypeFree);
#endif /* LIBVIRT_VIRMDEV_H */
diff --git a/src/util/virnetdev.c b/src/util/virnetdev.c
index 50947b302b..aeb9caab2a 100644
--- a/src/util/virnetdev.c
+++ b/src/util/virnetdev.c
@@ -121,7 +121,7 @@ virNetDevMcastEntryFree(virNetDevMcastEntryPtr entry)
VIR_FREE(entry);
}
-VIR_DEFINE_AUTOPTR_FUNC(virNetDevMcastEntry, virNetDevMcastEntryFree)
+VIR_DEFINE_AUTOPTR_FUNC(virNetDevMcastEntry, virNetDevMcastEntryFree);
typedef struct _virNetDevMcastList virNetDevMcastList;
typedef virNetDevMcastList *virNetDevMcastListPtr;
diff --git a/src/util/virnetdev.h b/src/util/virnetdev.h
index 3982097cdf..6f6094eebe 100644
--- a/src/util/virnetdev.h
+++ b/src/util/virnetdev.h
@@ -311,6 +311,6 @@ int virNetDevSysfsFile(char **pf_sysfs_device_link,
int virNetDevRunEthernetScript(const char *ifname, const char *script)
ATTRIBUTE_NOINLINE;
-VIR_DEFINE_AUTOPTR_FUNC(virNetDevRxFilter, virNetDevRxFilterFree)
+VIR_DEFINE_AUTOPTR_FUNC(virNetDevRxFilter, virNetDevRxFilterFree);
#endif /* LIBVIRT_VIRNETDEV_H */
diff --git a/src/util/virnetdevip.h b/src/util/virnetdevip.h
index 1ecb4eae01..376ac32c47 100644
--- a/src/util/virnetdevip.h
+++ b/src/util/virnetdevip.h
@@ -94,7 +94,7 @@ void virNetDevIPInfoClear(virNetDevIPInfoPtr ip);
int virNetDevIPInfoAddToDev(const char *ifname,
virNetDevIPInfo const *ipInfo);
-VIR_DEFINE_AUTOPTR_FUNC(virNetDevIPAddr, virNetDevIPAddrFree)
-VIR_DEFINE_AUTOPTR_FUNC(virNetDevIPRoute, virNetDevIPRouteFree)
+VIR_DEFINE_AUTOPTR_FUNC(virNetDevIPAddr, virNetDevIPAddrFree);
+VIR_DEFINE_AUTOPTR_FUNC(virNetDevIPRoute, virNetDevIPRouteFree);
#endif /* LIBVIRT_VIRNETDEVIP_H */
diff --git a/src/util/virnetdevvlan.h b/src/util/virnetdevvlan.h
index 8fe3a4dfa7..2a13759550 100644
--- a/src/util/virnetdevvlan.h
+++ b/src/util/virnetdevvlan.h
@@ -48,6 +48,6 @@ void virNetDevVlanFree(virNetDevVlanPtr vlan);
int virNetDevVlanEqual(const virNetDevVlan *a, const virNetDevVlan *b);
int virNetDevVlanCopy(virNetDevVlanPtr dst, const virNetDevVlan *src);
-VIR_DEFINE_AUTOPTR_FUNC(virNetDevVlan, virNetDevVlanFree)
+VIR_DEFINE_AUTOPTR_FUNC(virNetDevVlan, virNetDevVlanFree);
#endif /* LIBVIRT_VIRNETDEVVLAN_H */
diff --git a/src/util/virnetlink.c b/src/util/virnetlink.c
index 62066a33d2..1d8467e643 100644
--- a/src/util/virnetlink.c
+++ b/src/util/virnetlink.c
@@ -63,7 +63,7 @@ typedef struct nl_handle virNetlinkHandle;
typedef struct nl_sock virNetlinkHandle;
# endif
-VIR_DEFINE_AUTOPTR_FUNC(virNetlinkHandle, virNetlinkFree)
+VIR_DEFINE_AUTOPTR_FUNC(virNetlinkHandle, virNetlinkFree);
typedef struct _virNetlinkEventSrvPrivate virNetlinkEventSrvPrivate;
typedef virNetlinkEventSrvPrivate *virNetlinkEventSrvPrivatePtr;
diff --git a/src/util/virnetlink.h b/src/util/virnetlink.h
index 37442be44c..9dd7b3c3ed 100644
--- a/src/util/virnetlink.h
+++ b/src/util/virnetlink.h
@@ -37,7 +37,7 @@
# endif
typedef struct nl_msg virNetlinkMsg;
-VIR_DEFINE_AUTOPTR_FUNC(virNetlinkMsg, nlmsg_free)
+VIR_DEFINE_AUTOPTR_FUNC(virNetlinkMsg, nlmsg_free);
# else
diff --git a/src/util/virpci.h b/src/util/virpci.h
index 0b35228e3d..c8fc1e8bf6 100644
--- a/src/util/virpci.h
+++ b/src/util/virpci.h
@@ -271,8 +271,8 @@ ssize_t virPCIGetMdevTypes(const char *sysfspath,
void virPCIDeviceAddressFree(virPCIDeviceAddressPtr address);
-VIR_DEFINE_AUTOPTR_FUNC(virPCIDevice, virPCIDeviceFree)
-VIR_DEFINE_AUTOPTR_FUNC(virPCIDeviceAddress, virPCIDeviceAddressFree)
-VIR_DEFINE_AUTOPTR_FUNC(virPCIEDeviceInfo, virPCIEDeviceInfoFree)
+VIR_DEFINE_AUTOPTR_FUNC(virPCIDevice, virPCIDeviceFree);
+VIR_DEFINE_AUTOPTR_FUNC(virPCIDeviceAddress, virPCIDeviceAddressFree);
+VIR_DEFINE_AUTOPTR_FUNC(virPCIEDeviceInfo, virPCIEDeviceInfoFree);
#endif /* LIBVIRT_VIRPCI_H */
diff --git a/src/util/virperf.h b/src/util/virperf.h
index 0d026e80c2..3cd26563b4 100644
--- a/src/util/virperf.h
+++ b/src/util/virperf.h
@@ -82,6 +82,6 @@ int virPerfReadEvent(virPerfPtr perf,
virPerfEventType type,
uint64_t *value);
-VIR_DEFINE_AUTOPTR_FUNC(virPerf, virPerfFree)
+VIR_DEFINE_AUTOPTR_FUNC(virPerf, virPerfFree);
#endif /* LIBVIRT_VIRPERF_H */
diff --git a/src/util/virscsi.c b/src/util/virscsi.c
index 715064d669..b27831f0b3 100644
--- a/src/util/virscsi.c
+++ b/src/util/virscsi.c
@@ -248,7 +248,7 @@ virSCSIDeviceUsedByInfoFree(virUsedByInfoPtr used_by)
VIR_FREE(used_by->domname);
VIR_FREE(used_by);
}
-VIR_DEFINE_AUTOPTR_FUNC(virUsedByInfo, virSCSIDeviceUsedByInfoFree)
+VIR_DEFINE_AUTOPTR_FUNC(virUsedByInfo, virSCSIDeviceUsedByInfoFree);
void
virSCSIDeviceFree(virSCSIDevicePtr dev)
diff --git a/src/util/virscsi.h b/src/util/virscsi.h
index fd5986d2c0..70e113b486 100644
--- a/src/util/virscsi.h
+++ b/src/util/virscsi.h
@@ -93,6 +93,6 @@ void virSCSIDeviceListDel(virSCSIDeviceListPtr list,
virSCSIDevicePtr virSCSIDeviceListFind(virSCSIDeviceListPtr list,
virSCSIDevicePtr dev);
-VIR_DEFINE_AUTOPTR_FUNC(virSCSIDevice, virSCSIDeviceFree)
+VIR_DEFINE_AUTOPTR_FUNC(virSCSIDevice, virSCSIDeviceFree);
#endif /* LIBVIRT_VIRSCSI_H */
diff --git a/src/util/virscsivhost.h b/src/util/virscsivhost.h
index 5440db16b2..d28773482c 100644
--- a/src/util/virscsivhost.h
+++ b/src/util/virscsivhost.h
@@ -61,6 +61,6 @@ void virSCSIVHostDeviceGetUsedBy(virSCSIVHostDevicePtr dev,
void virSCSIVHostDeviceFree(virSCSIVHostDevicePtr dev);
int virSCSIVHostOpenVhostSCSI(int *vhostfd) ATTRIBUTE_NOINLINE;
-VIR_DEFINE_AUTOPTR_FUNC(virSCSIVHostDevice, virSCSIVHostDeviceFree)
+VIR_DEFINE_AUTOPTR_FUNC(virSCSIVHostDevice, virSCSIVHostDeviceFree);
#endif /* LIBVIRT_VIRSCSIVHOST_H */
diff --git a/src/util/virsocketaddr.h b/src/util/virsocketaddr.h
index 64bcbb36dc..f6caa4fcf5 100644
--- a/src/util/virsocketaddr.h
+++ b/src/util/virsocketaddr.h
@@ -160,6 +160,6 @@ int virSocketAddrPTRDomain(const virSocketAddr *addr,
void virSocketAddrFree(virSocketAddrPtr addr);
-VIR_DEFINE_AUTOPTR_FUNC(virSocketAddr, virSocketAddrFree)
+VIR_DEFINE_AUTOPTR_FUNC(virSocketAddr, virSocketAddrFree);
#endif /* LIBVIRT_VIRSOCKETADDR_H */
diff --git a/src/util/virstring.h b/src/util/virstring.h
index 42848e62b1..aef82471c2 100644
--- a/src/util/virstring.h
+++ b/src/util/virstring.h
@@ -307,6 +307,6 @@ int virStringParsePort(const char *str,
unsigned int *port)
ATTRIBUTE_NONNULL(2) ATTRIBUTE_RETURN_CHECK;
-VIR_DEFINE_AUTOPTR_FUNC(virString, virStringListFree)
+VIR_DEFINE_AUTOPTR_FUNC(virString, virStringListFree);
#endif /* LIBVIRT_VIRSTRING_H */
diff --git a/src/util/virusb.h b/src/util/virusb.h
index e589a45310..6ed71606d4 100644
--- a/src/util/virusb.h
+++ b/src/util/virusb.h
@@ -96,6 +96,6 @@ void virUSBDeviceListDel(virUSBDeviceListPtr list,
virUSBDevicePtr virUSBDeviceListFind(virUSBDeviceListPtr list,
virUSBDevicePtr dev);
-VIR_DEFINE_AUTOPTR_FUNC(virUSBDevice, virUSBDeviceFree)
+VIR_DEFINE_AUTOPTR_FUNC(virUSBDevice, virUSBDeviceFree);
#endif /* LIBVIRT_VIRUSB_H */
--
2.20.1
5 years, 9 months
[libvirt] [PATCH] docs: Update the AMD SEV's spec URL
by Erik Skultety
Luckily, the new URL still points to the same location, the only change
is in the document name where an escaped space (%20) was replaced by an
underscore.
Signed-off-by: Erik Skultety <eskultet(a)redhat.com>
---
docs/formatdomain.html.in | 4 ++--
docs/formatdomaincaps.html.in | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/docs/formatdomain.html.in b/docs/formatdomain.html.in
index 7f07bb7f55..2ae5006849 100644
--- a/docs/formatdomain.html.in
+++ b/docs/formatdomain.html.in
@@ -8785,8 +8785,8 @@ qemu-kvm -net nic,model=? /dev/null
different entity using a different key the encrypted guests data will
be incorrectly decrypted, leading to unintelligible data.
- For more information see various input parameters and its format see the SEV API spec
- <a href="https://support.amd.com/TechDocs/55766_SEV-KM%20API_Specification.pdf"> https://support.amd.com/TechDocs/55766_SEV-KM%20API_Specification.pdf </a>
+ For more information see various input parameters and its format see the
+ <a href="https://support.amd.com/TechDocs/55766_SEV-KM_API_Specification.pdf">SEV API spec</a>
<span class="since">Since 4.4.0</span>
</p>
<pre>
diff --git a/docs/formatdomaincaps.html.in b/docs/formatdomaincaps.html.in
index cafd9abbdf..ba48daab2d 100644
--- a/docs/formatdomaincaps.html.in
+++ b/docs/formatdomaincaps.html.in
@@ -481,7 +481,7 @@
<p>
For more details on SEV feature see:
- <a href="https://support.amd.com/TechDocs/55766_SEV-KM%20API_Specification.pdf">
+ <a href="https://support.amd.com/TechDocs/55766_SEV-KM_API_Specification.pdf">
SEV API spec</a> and <a href="http://amd-dev.wpengine.netdna-cdn.com/wordpress/media/2013/12/AMD_Memory...">
SEV White Paper</a>
</p>
--
2.20.1
5 years, 9 months
Re: [libvirt] [Qemu-devel] [PATCH v3 16/17] qmp: Deprecate query-events in favor of query-qmp-schema
by Eric Blake
Adding libvirt in cc
On 2/6/19 12:17 PM, Markus Armbruster wrote:
> query-events doesn't reflect compile-time configuration. Instead of
> fixing that, deprecate the command in favor of query-qmp-schema.
>
> Signed-off-by: Markus Armbruster <armbru(a)redhat.com>
> ---
> monitor.c | 5 +++++
> qapi/misc.json | 7 +++++--
> qemu-deprecated.texi | 5 +++++
> 3 files changed, 15 insertions(+), 2 deletions(-)
Libvirt uses query-events; we'll need to patch libvirt to start relying
on query-qmp-schema before this deprecation cycle can complete (although
I'm in favor of making the change).
>
> diff --git a/monitor.c b/monitor.c
> index eeec289aae..9f27621ed1 100644
> --- a/monitor.c
> +++ b/monitor.c
> @@ -1099,6 +1099,11 @@ CommandInfoList *qmp_query_commands(Error **errp)
>
> EventInfoList *qmp_query_events(Error **errp)
> {
> + /*
> + * TODO This deprecated command is the only user of
> + * QAPIEvent_str() and QAPIEvent_lookup[]. When the command goes,
> + * they should go, too.
> + */
> EventInfoList *info, *ev_list = NULL;
> QAPIEvent e;
>
> diff --git a/qapi/misc.json b/qapi/misc.json
> index 82f9147353..98f59f828a 100644
> --- a/qapi/misc.json
> +++ b/qapi/misc.json
> @@ -318,12 +318,15 @@
> ##
> # @query-events:
> #
> -# Return a list of supported QMP events by this server
> +# Return information on QMP events.
> #
> -# Returns: A list of @EventInfo for all supported events
> +# Returns: A list of @EventInfo.
> #
> # Since: 1.2.0
> #
> +# Note: This command is deprecated, because its output doesn't reflect
> +# compile-time configuration. Use query-qmp-schema instead.
> +#
> # Example:
> #
> # -> { "execute": "query-events" }
> diff --git a/qemu-deprecated.texi b/qemu-deprecated.texi
> index 9cc20b365c..3288e102d6 100644
> --- a/qemu-deprecated.texi
> +++ b/qemu-deprecated.texi
> @@ -103,6 +103,11 @@ Use ``device_add'' for hotplugging vCPUs instead of ``cpu-add''. See
> documentation of ``query-hotpluggable-cpus'' for additional
> details.
>
> +@subsection query-events (since 4.0)
> +
> +The ``query-events'' command has been superseded by the more powerful
> +and accurate ``query-qmp-schema'' command.
> +
> @section Human Monitor Protocol (HMP) commands
>
> @subsection The hub_id parameter of 'hostfwd_add' / 'hostfwd_remove' (since 3.1)
>
--
Eric Blake, Principal Software Engineer
Red Hat, Inc. +1-919-301-3226
Virtualization: qemu.org | libvirt.org
5 years, 9 months