Devel
Threads by month
- ----- 2026 -----
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2005 -----
- December
- 27 participants
- 40116 discussions
07 Dec '16
With current perf framework, this patch adds support and documentation
for branch instructions perf event.
Signed-off-by: Nitesh Konkar <nitkon12(a)linux.vnet.ibm.com>
---
docs/formatdomain.html.in | 6 ++++++
docs/schemas/domaincommon.rng | 1 +
include/libvirt/libvirt-domain.h | 10 ++++++++++
src/libvirt-domain.c | 3 +++
src/qemu/qemu_driver.c | 1 +
src/util/virperf.c | 6 +++++-
src/util/virperf.h | 2 ++
tests/genericxml2xmlindata/generic-perf.xml | 1 +
tools/virsh.pod | 3 +++
9 files changed, 32 insertions(+), 1 deletion(-)
diff --git a/docs/formatdomain.html.in b/docs/formatdomain.html.in
index 6bd02cc..ee8d312 100644
--- a/docs/formatdomain.html.in
+++ b/docs/formatdomain.html.in
@@ -1927,6 +1927,7 @@
<event name='instructions' enabled='yes'/>
<event name='cache_references' enabled='no'/>
<event name='cache_misses' enabled='no'/>
+ <event name='branch_instructions' enabled='no'/>
</perf>
...
</pre>
@@ -1972,6 +1973,11 @@
<td>the count of cache misses by applications running on the platform</td>
<td><code>perf.cache_misses</code></td>
</tr>
+ <tr>
+ <td><code>branch_instructions</code></td>
+ <td>the count of branch instructions by applications running on the platform</td>
+ <td><code>perf.branch_instructions</code></td>
+ </tr>
</table>
<h3><a name="elementsDevices">Devices</a></h3>
diff --git a/docs/schemas/domaincommon.rng b/docs/schemas/domaincommon.rng
index bb903ef..5fdc036 100644
--- a/docs/schemas/domaincommon.rng
+++ b/docs/schemas/domaincommon.rng
@@ -427,6 +427,7 @@
<value>instructions</value>
<value>cache_references</value>
<value>cache_misses</value>
+ <value>branch_instructions</value>
</choice>
</attribute>
<attribute name="enabled">
diff --git a/include/libvirt/libvirt-domain.h b/include/libvirt/libvirt-domain.h
index a8435ab..aad2541 100644
--- a/include/libvirt/libvirt-domain.h
+++ b/include/libvirt/libvirt-domain.h
@@ -2125,6 +2125,16 @@ void virDomainStatsRecordListFree(virDomainStatsRecordPtr *stats);
*/
# define VIR_PERF_PARAM_CPU_CYCLES "cpu_cycles"
+/**
+ * VIR_PERF_PARAM_BRANCH_INSTRUCTIONS:
+ *
+ * Macro for typed parameter name that represents branch instructions
+ * perf event which can be used to measure the count of branch instructions
+ * by applications running on the platform. It corresponds to the
+ * "perf.branch_instructions" field in the *Stats APIs.
+ */
+# define VIR_PERF_PARAM_BRANCH_INSTRUCTIONS "branch_instructions"
+
int virDomainGetPerfEvents(virDomainPtr dom,
virTypedParameterPtr *params,
int *nparams,
diff --git a/src/libvirt-domain.c b/src/libvirt-domain.c
index ce199f0..fa28217 100644
--- a/src/libvirt-domain.c
+++ b/src/libvirt-domain.c
@@ -11213,6 +11213,9 @@ virConnectGetDomainCapabilities(virConnectPtr conn,
* "perf.cpu_cycles" - The count of cpu cycles (total/elapsed) as an
* unsigned long long. It is produced by cpu_cycles
* perf event.
+ * "perf.branch_instructions" - The count of branch instructions as unsigned
+ * long long. It is produced by branch_instructions
+ * perf event.
*
* Note that entire stats groups or individual stat fields may be missing from
* the output in case they are not supported by the given hypervisor, are not
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index 3517aa2..c7fad30 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -9852,6 +9852,7 @@ qemuDomainSetPerfEvents(virDomainPtr dom,
VIR_PERF_PARAM_INSTRUCTIONS, VIR_TYPED_PARAM_BOOLEAN,
VIR_PERF_PARAM_CACHE_REFERENCES, VIR_TYPED_PARAM_BOOLEAN,
VIR_PERF_PARAM_CACHE_MISSES, VIR_TYPED_PARAM_BOOLEAN,
+ VIR_PERF_PARAM_BRANCH_INSTRUCTIONS, VIR_TYPED_PARAM_BOOLEAN,
NULL) < 0)
return -1;
diff --git a/src/util/virperf.c b/src/util/virperf.c
index 5d57962..635faf1 100644
--- a/src/util/virperf.c
+++ b/src/util/virperf.c
@@ -40,7 +40,8 @@ VIR_LOG_INIT("util.perf");
VIR_ENUM_IMPL(virPerfEvent, VIR_PERF_EVENT_LAST,
"cmt", "mbmt", "mbml",
"cpu_cycles", "instructions",
- "cache_references", "cache_misses");
+ "cache_references", "cache_misses",
+ "branch_instructions");
struct virPerfEvent {
int type;
@@ -85,6 +86,9 @@ static struct virPerfEventAttr attrs[] = {
{.type = VIR_PERF_EVENT_CACHE_MISSES,
.attrType = PERF_TYPE_HARDWARE,
.attrConfig = PERF_COUNT_HW_CACHE_MISSES},
+ {.type = VIR_PERF_EVENT_BRANCH_INSTRUCTIONS,
+ .attrType = PERF_TYPE_HARDWARE,
+ .attrConfig = PERF_COUNT_HW_BRANCH_INSTRUCTIONS},
};
typedef struct virPerfEventAttr *virPerfEventAttrPtr;
diff --git a/src/util/virperf.h b/src/util/virperf.h
index 3fca2d0..8ebc03c 100644
--- a/src/util/virperf.h
+++ b/src/util/virperf.h
@@ -36,6 +36,8 @@ typedef enum {
VIR_PERF_EVENT_INSTRUCTIONS, /* Count of instructions for application */
VIR_PERF_EVENT_CACHE_REFERENCES, /* Cache hits by applications */
VIR_PERF_EVENT_CACHE_MISSES, /* Cache misses by applications */
+ VIR_PERF_EVENT_BRANCH_INSTRUCTIONS, /* Count of branch instructions
+ for applications */
VIR_PERF_EVENT_LAST
} virPerfEventType;
diff --git a/tests/genericxml2xmlindata/generic-perf.xml b/tests/genericxml2xmlindata/generic-perf.xml
index a914133..92e5847 100644
--- a/tests/genericxml2xmlindata/generic-perf.xml
+++ b/tests/genericxml2xmlindata/generic-perf.xml
@@ -20,6 +20,7 @@
<event name='instructions' enabled='yes'/>
<event name='cache_references' enabled='no'/>
<event name='cache_misses' enabled='no'/>
+ <event name='branch_instructions' enabled='yes'/>
</perf>
<devices>
</devices>
diff --git a/tools/virsh.pod b/tools/virsh.pod
index 247d235..493465d 100644
--- a/tools/virsh.pod
+++ b/tools/virsh.pod
@@ -2289,6 +2289,9 @@ B<Valid perf event names>
(total/elapsed). May be used with
instructions in order to get a cycles
per instruction.
+ branch_instructions - Provides the count of branch instructions
+ executed by applications running on the
+ platform.
B<Note>: The statistics can be retrieved using the B<domstats> command using
the I<--perf> flag.
--
1.9.3
2
3
07 Dec '16
Finally. This is full implementation of my RFC:
https://www.redhat.com/archives/libvir-list/2016-November/msg00691.html
The first two patches were posted separately, but since they lack
review I'm sending them here too because they are important for
the feature:
https://www.redhat.com/archives/libvir-list/2016-November/msg01060.html
All of these patches:
a) can be found on my github:
https://github.com/zippy2/libvirt/tree/qemu_container_v2
b) pass my basic testing:
- run domain with device passthrough
- device hot(un-)plug (disks, RNGs, chardevs, PCI/USB)
c) seem to add negligible overhead to domain startup process
Michal Privoznik (21):
qemu: Create hugepage path on per domain basis
security: Implement virSecurityManagerSetHugepages
virprocess: Introduce virProcessSetupPrivateMountNS
virfile: Introduce virFileSetupDev
virfile: Introduce ACL helpers
virusb: Introduce virUSBDeviceGetPath
virscsi: Introduce virSCSIDeviceGetPath
qemu_cgroup: Expose defaultDeviceACL
qemu: Spawn qemu under mount namespace
qemu: Prepare disks when starting a domain
qemu: Prepare hostdevs when starting a domain
qemu: Prepare chardevs when starting a domain
qemu: Prepare TPM when starting a domain
qemu: Prepare inputs when starting a domain
qemu: Prepare RNGs when starting a domain
qemu: Enter the namespace on relabelling
qemu: Manage /dev entry on disk hotplug
qemu: Manage /dev entry on hostdev hotplug
qemu: Manage /dev entry on chardev hotplug
qemu: Manage /dev entry on RNG hotplug
qemu: Let users opt-out from containerization
configure.ac | 12 +-
src/Makefile.am | 7 +-
src/libvirt_private.syms | 9 +
src/lxc/lxc_container.c | 20 +-
src/lxc/lxc_controller.c | 32 +-
src/qemu/libvirtd_qemu.aug | 1 +
src/qemu/qemu.conf | 8 +
src/qemu/qemu_cgroup.c | 2 +-
src/qemu/qemu_cgroup.h | 1 +
src/qemu/qemu_command.c | 4 +-
src/qemu/qemu_conf.c | 50 +-
src/qemu/qemu_conf.h | 18 +-
src/qemu/qemu_domain.c | 1147 ++++++++++++++++++++
src/qemu/qemu_domain.h | 42 +
src/qemu/qemu_driver.c | 24 +-
src/qemu/qemu_hotplug.c | 90 +-
src/qemu/qemu_process.c | 53 +-
src/qemu/qemu_security.c | 208 ++++
src/qemu/qemu_security.h | 55 +
src/qemu/test_libvirtd_qemu.aug.in | 1 +
src/security/security_dac.c | 11 +
src/security/security_selinux.c | 10 +
src/util/virfile.c | 153 +++
src/util/virfile.h | 17 +
src/util/virprocess.c | 38 +
src/util/virprocess.h | 2 +
src/util/virscsi.c | 6 +
src/util/virscsi.h | 1 +
src/util/virusb.c | 5 +
src/util/virusb.h | 1 +
.../qemuxml2argv-hugepages-numa.args | 4 +-
.../qemuxml2argv-hugepages-pages.args | 14 +-
.../qemuxml2argv-hugepages-pages2.args | 2 +-
.../qemuxml2argv-hugepages-pages3.args | 2 +-
.../qemuxml2argv-hugepages-pages5.args | 2 +-
.../qemuxml2argv-hugepages-shared.args | 12 +-
tests/qemuxml2argvdata/qemuxml2argv-hugepages.args | 2 +-
.../qemuxml2argv-memory-hotplug-dimm-addr.args | 4 +-
.../qemuxml2argv-memory-hotplug-dimm.args | 4 +-
39 files changed, 1933 insertions(+), 141 deletions(-)
create mode 100644 src/qemu/qemu_security.c
create mode 100644 src/qemu/qemu_security.h
--
2.8.4
2
44
Jiri Denemark (4):
formatnetwork: Remove useless </route>
formatnetwork: Split long lines
formatnetwork: Remove extra white space in examples
formatnetwork: Properly mark attributes of /network/dns/srv
docs/formatnetwork.html.in | 99 ++++++++++++++++++++++++----------------------
1 file changed, 51 insertions(+), 48 deletions(-)
--
2.11.0
2
5
When redoing the website we deleted the libvirtLogo.png file
not remembering that the test driver screenshot API impl
relied on it.
Rather than having the test driver use the logo as a side
effect, give it its own dedicated image to use. This is
installed in /usr/share/libvirt/test-screenshot.png and
is taken from a NeXT Cube running WorldWideWeb[1]. The
very first web browser in existance, running on the
hardware it was originally written on.
[1] https://en.wikipedia.org/wiki/WorldWideWeb
Signed-off-by: Daniel P. Berrange <berrange(a)redhat.com>
---
Changed in v2:
- Recompressed with ImageMagick screenshot to be 25% smaller
- Added easter egg to screenshot
libvirt.spec.in | 2 ++
mingw-libvirt.spec.in | 4 ++++
src/Makefile.am | 6 ++++++
src/test/test-screenshot.png | Bin 0 -> 33443 bytes
src/test/test_driver.c | 2 +-
5 files changed, 13 insertions(+), 1 deletion(-)
create mode 100644 src/test/test-screenshot.png
diff --git a/libvirt.spec.in b/libvirt.spec.in
index 4f35313..4bb0699 100644
--- a/libvirt.spec.in
+++ b/libvirt.spec.in
@@ -1842,6 +1842,8 @@ exit 0
%{_datadir}/libvirt/cpu_map.xml
+%{_datadir}/libvirt/test-screenshot.png
+
%config(noreplace) %{_sysconfdir}/sasl2/libvirt.conf
%files admin
diff --git a/mingw-libvirt.spec.in b/mingw-libvirt.spec.in
index 65d3e6d..e088dc2 100644
--- a/mingw-libvirt.spec.in
+++ b/mingw-libvirt.spec.in
@@ -232,6 +232,8 @@ rm -rf $RPM_BUILD_ROOT%{mingw64_libexecdir}/libvirt-guests.sh
%{mingw32_datadir}/libvirt/cpu_map.xml
+%{mingw32_datadir}/libvirt/test-screenshot.png
+
%{mingw32_datadir}/locale/*/LC_MESSAGES/libvirt.mo
%dir %{mingw32_includedir}/libvirt
@@ -314,6 +316,8 @@ rm -rf $RPM_BUILD_ROOT%{mingw64_libexecdir}/libvirt-guests.sh
%{mingw64_datadir}/libvirt/cpu_map.xml
+%{mingw64_datadir}/libvirt/test-screenshot.png
+
%{mingw64_datadir}/locale/*/LC_MESSAGES/libvirt.mo
%dir %{mingw64_includedir}/libvirt
diff --git a/src/Makefile.am b/src/Makefile.am
index d440548..8bc3acc 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -691,6 +691,7 @@ check-local: check-protocol check-symfile check-symsorting \
# Mock driver, covering domains, storage, networks, etc
TEST_DRIVER_SOURCES = \
test/test_driver.c test/test_driver.h
+TEST_DRIVER_ASSETS = test/test-screenshot.png
# Now the Hypervisor specific drivers
XEN_DRIVER_SOURCES = \
@@ -1194,6 +1195,10 @@ GENERATED_SYM_FILES = \
$(NULL)
if WITH_TEST
+
+driver_test_asset_DATA = $(TEST_DRIVER_ASSETS)
+driver_test_assetdir = $(pkgdatadir)
+
noinst_LTLIBRARIES += libvirt_driver_test.la
libvirt_la_BUILT_LIBADD += libvirt_driver_test.la
libvirt_driver_test_la_CFLAGS = \
@@ -1886,6 +1891,7 @@ access/viraccessapichecklxc.c: $(srcdir)/rpc/gendispatch.pl \
# Add all conditional sources just in case...
EXTRA_DIST += \
$(TEST_DRIVER_SOURCES) \
+ $(TEST_DRIVER_ASSETS) \
$(REMOTE_DRIVER_SOURCES) \
$(XEN_DRIVER_SOURCES) \
$(QEMU_DRIVER_SOURCES) \
diff --git a/src/test/test-screenshot.png b/src/test/test-screenshot.png
new file mode 100644
index 0000000000000000000000000000000000000000..3991eabb228631ec86382273a3ea998cb9adf5bf
GIT binary patch
literal 33443
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
literal 0
HcmV?d00001
diff --git a/src/test/test_driver.c b/src/test/test_driver.c
index 5a82f8e..de92a01 100644
--- a/src/test/test_driver.c
+++ b/src/test/test_driver.c
@@ -5923,7 +5923,7 @@ testDomainScreenshot(virDomainPtr dom ATTRIBUTE_UNUSED,
if (VIR_STRDUP(ret, "image/png") < 0)
return NULL;
- if (virFDStreamOpenFile(st, PKGDATADIR "/libvirtLogo.png", 0, 0, O_RDONLY) < 0)
+ if (virFDStreamOpenFile(st, PKGDATADIR "/test-screenshot.png", 0, 0, O_RDONLY) < 0)
VIR_FREE(ret);
return ret;
--
2.9.3
2
1
The Makefile.am adjustment works for me - although it's not my preferred
area of the environment to touch, so if there's a "better" way - let me know.
The GetAllDomainStats current output is just an unreadable mass. This cleans
it up a bit creating text/code boxes for the various stats.
The InterfaceAddresses current output was about 1/2 right - this just makes
all the code examples inside a text/code box.
John Ferlan (3):
docs: Rebuild apihtml docs when source changes
docs: Adjust formatting for virConnectGetAllDomainStats output
docs: Fix code example formatting for virDomainInterfaceAddresses
docs/Makefile.am | 14 ++-
src/libvirt-domain.c | 273 +++++++++++++++++++++++++++------------------------
2 files changed, 157 insertions(+), 130 deletions(-)
--
2.7.4
2
4
When redoing the website we deleted the libvirtLogo.png file
not remembering that the test driver screenshot API impl
relied on it.
Rather than having the test driver use the logo as a side
effect, give it its own dedicated image to use. This is
installed in /usr/share/libvirt/test-screenshot.png and
is taken from a NeXT Cube running WorldWideWeb[1]. The
very first web browser in existance, running on the
hardware it was originally written on.
[1] https://en.wikipedia.org/wiki/WorldWideWeb
Signed-off-by: Daniel P. Berrange <berrange(a)redhat.com>
---
libvirt.spec.in | 2 ++
mingw-libvirt.spec.in | 4 ++++
src/Makefile.am | 6 ++++++
src/test/test-screenshot.png | Bin 0 -> 45394 bytes
src/test/test_driver.c | 2 +-
5 files changed, 13 insertions(+), 1 deletion(-)
create mode 100644 src/test/test-screenshot.png
diff --git a/libvirt.spec.in b/libvirt.spec.in
index 4f35313..4bb0699 100644
--- a/libvirt.spec.in
+++ b/libvirt.spec.in
@@ -1842,6 +1842,8 @@ exit 0
%{_datadir}/libvirt/cpu_map.xml
+%{_datadir}/libvirt/test-screenshot.png
+
%config(noreplace) %{_sysconfdir}/sasl2/libvirt.conf
%files admin
diff --git a/mingw-libvirt.spec.in b/mingw-libvirt.spec.in
index 65d3e6d..e088dc2 100644
--- a/mingw-libvirt.spec.in
+++ b/mingw-libvirt.spec.in
@@ -232,6 +232,8 @@ rm -rf $RPM_BUILD_ROOT%{mingw64_libexecdir}/libvirt-guests.sh
%{mingw32_datadir}/libvirt/cpu_map.xml
+%{mingw32_datadir}/libvirt/test-screenshot.png
+
%{mingw32_datadir}/locale/*/LC_MESSAGES/libvirt.mo
%dir %{mingw32_includedir}/libvirt
@@ -314,6 +316,8 @@ rm -rf $RPM_BUILD_ROOT%{mingw64_libexecdir}/libvirt-guests.sh
%{mingw64_datadir}/libvirt/cpu_map.xml
+%{mingw64_datadir}/libvirt/test-screenshot.png
+
%{mingw64_datadir}/locale/*/LC_MESSAGES/libvirt.mo
%dir %{mingw64_includedir}/libvirt
diff --git a/src/Makefile.am b/src/Makefile.am
index d440548..8bc3acc 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -691,6 +691,7 @@ check-local: check-protocol check-symfile check-symsorting \
# Mock driver, covering domains, storage, networks, etc
TEST_DRIVER_SOURCES = \
test/test_driver.c test/test_driver.h
+TEST_DRIVER_ASSETS = test/test-screenshot.png
# Now the Hypervisor specific drivers
XEN_DRIVER_SOURCES = \
@@ -1194,6 +1195,10 @@ GENERATED_SYM_FILES = \
$(NULL)
if WITH_TEST
+
+driver_test_asset_DATA = $(TEST_DRIVER_ASSETS)
+driver_test_assetdir = $(pkgdatadir)
+
noinst_LTLIBRARIES += libvirt_driver_test.la
libvirt_la_BUILT_LIBADD += libvirt_driver_test.la
libvirt_driver_test_la_CFLAGS = \
@@ -1886,6 +1891,7 @@ access/viraccessapichecklxc.c: $(srcdir)/rpc/gendispatch.pl \
# Add all conditional sources just in case...
EXTRA_DIST += \
$(TEST_DRIVER_SOURCES) \
+ $(TEST_DRIVER_ASSETS) \
$(REMOTE_DRIVER_SOURCES) \
$(XEN_DRIVER_SOURCES) \
$(QEMU_DRIVER_SOURCES) \
diff --git a/src/test/test-screenshot.png b/src/test/test-screenshot.png
new file mode 100644
index 0000000000000000000000000000000000000000..4402485cd2e456e07c8da98d6bf97f997a93bc8a
GIT binary patch
literal 45394
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%0Dho}2qgOez*H7M3#7hjH|Vj(84Cz^
zM3q~cOGUiini4o?yPy1T-_;;_4toKlJe%D=2KI{-!4jl|UgJ<#B|_}<Jy3D}hoM}V
z1~5G$Zwx^2-lN6i{TeC(bR5AI2)n}Ni2P%_@fFDjb|qT;i{wRGTbv6}Jd}l55*gOw
zjj;R@k^TYb<g7z{zE?jZ%r+t0`Tz2BL5qjyk7OL-%x1hr%iRMESNqcY#zF2rRnyg*
zbX~IQCPm`{tB5I?^{K??S-#(}plNdsDqJSBoEdDX{6k3M9dJ>7J*hI&dT{2hDkI*$
z#-AA5B72Y)7PXkIe4YnbMz9J*S_h*BKbr;f36Kvu`v&MSWa|}lnzUIahi2f9f%U`r
z!1nE%HCdcaFWMBG<61QcO{UOOptD&r?<O7h)>{GJ6x#=VrgyTfiK9&s>w@{Eorz%G
zdC|vm-c#F4=IeCFYJVs<%q@wO@7hGhCp&8g#T1K!Je94+yVN?f#*@Tvgt|H}7?1&f
zG}xnJ_eQvSG_L9R@;>X;D_bWq3tFeq#~Xkv$JRQk>|%zLSKa0K7uBN5kj2K*5_&)z
z)UP+}+KD=J>>_66xv(v@CP!l<{JwkjE3j|{yZSGE!H!11S-SV#s;)t}(r2oPOMkN?
zY<JkfN>T&V!xsvy9fM#{1ZxU@u#zG6)Rgi~{n&bO3?pzDX67^0!~M$Qn;_!=KC8F1
zb}?Zsy^5diZS7k&hFkhFJxf-(!I9DcDi+<EQ?+xOCOv~eu_1{Nx|%VN5P_vorWBgj
zZJ8bglm=AaD2m_db)dG7vV6JLsfTx!QL{LvLx^=CB766gPDLD_dC8a$X@PTkN8R6(
z)65$OaJ94=9KCqF_-Z?t7jXklB%ADN8y2TD$Sz2dp=#&vogW&BzLY=)lsg}<l&m;b
zO-7;uthvx=iWExMlG*p(v;=5u2Fu_9ARMTUkBmx_x!0=>xgnnJ{OF|jp6s~7G}&g^
z!kWivUhnJt$hoSm+u5`5G`%oyI)mo+44$|b*6f3>3wf2TKH(K=Hs!^$4B>hv9(6UZ
z^yBkuuQj*(52m?KEfLqAYvjVM;LV<Al!s-h_%+TGh@Cbt-8er})`hG;Jhf<OKT4E)
zSz8kO%I{2Z;XkXXHR!~RenGT<%GtoS+Ly)~*j^p`xVKjklDh!~X@PsWjgC;>RWJQ@
zuPzDq6_o_US*|HRCbs}RY0E}_6Ki~CF2XpUwa7RezHCWC9lLo#<d(3}|K2SniP=Bg
zW2H|~6IybPjTDXcm3LW7hqNhq2CNcDF<Sk`P(pE^TD|bLkIBxvV%9xW$yUShYiht%
zaQj;z$X!P5b!=7`4eMXvv{oz2O_hdjRm|e-fFj_V6v@F(bc@owsutv98K)eFq3F7`
z>V*oG<1g;n1EvZ)`~24^Lpi^Xv*R`RP@~V!PJK!fq*}E4k8=8PjIT7yV{Nt5dxVbe
z0mz3(duFS|A*R<FI?pvh5w-x5v%pRFcF>$U?(U$<%^4~9Hmsv0d_?slu9Gypd36}(
zOZM!CDlPjsL1ks#QDkoky271eGk6rrn;+n-wG`5)h%+JVbe{YGjw^MCRBhwS-_i)k
zy!xSg^F0Du@u6$qELIm<NxK)-Ay{|V<~psd=Uf#kLj+5y7IbYyRbVN9lC$_wkny7Z
zOF{&UN9P9rVWthuHu9?CMo;T~m}kvyUT+GeKqksfA?JOE^*Q}V<d9D-QRb40O{RQG
zs?7w<D`7`F>*cT=7cQ?fWf$4)Bv7n$z8p6=OA-$<N)p#S8DRXxN%xQh3a%n~v6Qcc
zs;nR??@La<`fzCxQ+?t6@hYT*O7ii|-%6ryNtqTlc-Bjlh>zS9!xf^Ji?bbhdIS<r
zlc)C=@q(!uXEE0+*xIKJ5TlwdDS@5M@oF{NbGeF8z&c8KA_Nm?z0z|*;_jr)T&Sdj
zZ~1QxDU2yh8)MX24;{71Ow|71ri8~xJZ%5<_mZ9=Etr$pXrhXTo)!*FEwp@5w%wF<
zA7ZCydZt>f3;vq=+{8Xk3MFf?1+*aB?(2Dg(t#Kjb8TkvmsbSc?*YfYjftop`!S$B
z-avkD{69@s<&C(uiqU$#o58W5i*Ggo%O#)fhy5kbN7Wt*HF~zSM#0-jpDp4|1$qB2
z4qAno+QG${5%s_^e0!DrjUiY`7tG>b*y?_8N`1HN!<)x^-a~3TFQ|B!{0fZ22~H=h
zWx&K)+L)3A5x$IscvH7WKb3R|wFm5$uh#d9rR&Xd4nuZ@n`{1aO@}sgryf=v0S|;g
zlI1o&OV`Kb9E9xZxO!oy)pfu;p`K6P0G#|qbubLOY2ivrnC-PQfOy69mcRi774vk1
z=Ybm<pMJ-byl^+w;booyp0#>!BV~B(SfeB%SYqoJf8AD}f8M@{Wn0#K&?nWMav*-+
z<}<H1hT-j7PbeiG;BAnpU?7zwFjksI!TCg;oCn-j;0Se})z+|L)9<WZw?#L;lK4Bk
zo+^Q|J0M!P`x*pdnRvD~??PvgwfBAC-SVg_KrFM*u#=n+jwm4BRJ+lg49<JhFkG(M
zAmLW|3slt0m$F{f8nAQkDzypz_NS^8_l8Ds|54B|5q=4Hfv!9ll9|U@<qGzI$CYGS
zBa<30<FXx|ozo^iCjrR=YkOWfP*PLc4+M&I67_O2bYdYvvV&X2Dw70|)^|_CFZwbP
z*`)wP<`cynjHB9WNbbS%$Gjm))!ZALm>pngt|XO0?21-PrWWrPr{6TZsLgl+j5vtv
zIZzFyi6gPKd!x@(*b~5jgJP4aRQ>fNDZi+@T>Pa@0&P<LT@Uc;+-!x3s$kPm9|lzh
z!ZhQQPn)c7q!wq%)a8e8B09o!q`@8{$o^JGqJ+zyM4e7*pz0W)Cs8=C?VuVrbn4eF
z_1A4NcItq3{g>vKN`*&kPto{=BF_!B`9Wz=4Lf1(cHiTMhyg^60>7m4SFwGUPD4OL
zJg6nVNIe01hhTpK3tyBShu80WCvw~Is2LQ?Y#I#?bsy4AOaTY{cpKZwjuE79`OC(F
QKOtxSJo`uKDUZbe0baLwKL7v#
literal 0
HcmV?d00001
diff --git a/src/test/test_driver.c b/src/test/test_driver.c
index 5a82f8e..de92a01 100644
--- a/src/test/test_driver.c
+++ b/src/test/test_driver.c
@@ -5923,7 +5923,7 @@ testDomainScreenshot(virDomainPtr dom ATTRIBUTE_UNUSED,
if (VIR_STRDUP(ret, "image/png") < 0)
return NULL;
- if (virFDStreamOpenFile(st, PKGDATADIR "/libvirtLogo.png", 0, 0, O_RDONLY) < 0)
+ if (virFDStreamOpenFile(st, PKGDATADIR "/test-screenshot.png", 0, 0, O_RDONLY) < 0)
VIR_FREE(ret);
return ret;
--
2.9.3
4
8
[libvirt] [PATCH 0/2] qemu: capabilities: Bump 2.8.0 caps to new version and adapt to changes
by Peter Krempa 07 Dec '16
by Peter Krempa 07 Dec '16
07 Dec '16
Peter Krempa (2):
test: qemucaps: Bump 2.8.0 state to current master
qemu: capabilities: Add gluster.debug_level detection for 2.8.0+
src/qemu/qemu_capabilities.c | 1 +
tests/qemucapabilitiesdata/caps_2.8.0.x86_64.replies | 12 ++++++------
tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml | 5 +++--
3 files changed, 10 insertions(+), 8 deletions(-)
--
2.10.2
2
3
This patch set enables cpu model support for s390. The user can now set exact
cpu models, query supported models via virsh domcapabilities, and use host-model
and host-passthrough modes. The end result is that migration is safer because
Qemu will perform runnability checking on the destination host and quit with an
error if the guest's cpu model is not supported.
Big Thanks for Jiri and Eduardo for being patient and answering our questions
while we figured out what we were doing!
Collin L. Walling (5):
s390: Stop reporting "host" for host model
qemu: qmp query-cpu-model-expansion command
qemu-caps: Get host model directly from Qemu when available
qemu: migration: warn if migrating with host-passthrough
qemu: command: Support new cpu feature argument syntax
Jason J. Herne (1):
s390: Cpu driver support for update and compare
po/POTFILES.in | 1 +
src/cpu/cpu_s390.c | 61 ++++++++++++++++++++----
src/qemu/qemu_capabilities.c | 109 +++++++++++++++++++++++++++++++++++++++++--
src/qemu/qemu_capabilities.h | 1 +
src/qemu/qemu_command.c | 10 +++-
src/qemu/qemu_migration.c | 4 ++
src/qemu/qemu_monitor.c | 60 ++++++++++++++++++++++++
src/qemu/qemu_monitor.h | 22 +++++++++
src/qemu/qemu_monitor_json.c | 94 +++++++++++++++++++++++++++++++++++++
src/qemu/qemu_monitor_json.h | 6 +++
10 files changed, 353 insertions(+), 15 deletions(-)
--
1.9.1
3
16
[libvirt] [PATCH v3 0/3] gluster: cache glfs connection object per volume
by Prasanna Kumar Kalever 07 Dec '16
by Prasanna Kumar Kalever 07 Dec '16
07 Dec '16
v3: Address comments by Daniel and Peter on v2
* Split the patch to 3 parts
Patch 1: change the virStorageNetHostDef type
Patch 2: optimize calls to virStorageFileInit and friends
Patch 3: add the caching for glfs
* Thanks to Daniel, this version make all the methods as thread safe
* Thanks to Peter for pointing use of virObjectLockable, this had simplified
rest of the parts a lot.
v2: Address review comments from Peter on v1
* Rebased on latest master
* Changes to commit msg
* Introduce storage API's for Register and Unregister of volume
* During qemu process Start/Stop and snapshot create
* Check Transport and Port type
* Atomic element add/del to list and ref counting
Pending: Treating IP and FQDN belong to same host
v1: Initial patch
Prasanna Kumar Kalever (3):
util: change the virStorageNetHostDef type
storage: optimize calls to virStorageFileInit and friends
gluster: cache glfs connection object per volume
src/conf/domain_conf.c | 46 +++---
src/qemu/qemu_command.c | 65 ++++----
src/qemu/qemu_domain.c | 2 +-
src/qemu/qemu_domain.h | 5 +
src/qemu/qemu_driver.c | 40 +++--
src/qemu/qemu_parse_command.c | 44 +++---
src/qemu/qemu_process.c | 45 ++++++
src/qemu/qemu_process.h | 4 +
src/storage/storage_backend_fs.c | 2 +
src/storage/storage_backend_gluster.c | 270 ++++++++++++++++++++++++++++++----
src/storage/storage_driver.c | 23 +--
src/util/virstoragefile.c | 85 ++++++-----
src/util/virstoragefile.h | 20 ++-
tests/virstoragetest.c | 2 +-
14 files changed, 477 insertions(+), 176 deletions(-)
--
2.7.4
3
10
Hi,
I recently started to use the libvirt domain events. With them I increase
the responsiveness of my VM state wachers.
In general it works pretty well. I just listen to the events and do a
periodic resync to cope with missed events.
While watching the events I ran into a few interesting situations I wanted
to share. The points 1-3 describe some minor issues or irregularities.
Point 4 is about the fact that domain and state updates are not versioned
which makes it very hard to stay in sync with libvirt when using events.
My libvirt version is 1.2.18.4.
1) Event order seems to be weird on startup:
When listening for VM lifecycle events I get this order:
{"event_type": "Started", "timestamp": "2016-11-25T11:59:53.209326Z",
"reason": "Booted", "domain_name": "generic", "domain_id":
"8ff7047b-fb46-44ff-a4c6-7c20c73ab86e"}
{"event_type": "Defined", "timestamp": "2016-11-25T11:59:53.435530Z",
"reason": "Added", "domain_name": "generic", "domain_id":
"8ff7047b-fb46-44ff-a4c6-7c20c73ab86e"}
It is strange that a VM already boots before it is defined. Is this the
intended order?
2) Defining a VM with VIR_DOMAIN_START_PAUSED gives me this event order
{"event_type": "Defined", "timestamp": "2016-11-25T12:02:44.037817Z",
"reason": "Added", "domain_name": "core_node", "domain_id":
"b9906489-6d5b-40f8-a742-ca71b2b84277"}
{"event_type": "Resumed", "timestamp": "2016-11-25T12:02:44.813104Z",
"reason": "Unpaused", "domain_name": "core_node", "domain_id":
"b9906489-6d5b-40f8-a742-ca71b2b84277"}
{"event_type": "Started", "timestamp": "2016-11-25T12:02:44.813733Z",
"reason": "Booted", "domain_name": "core_node", "domain_id":
"b9906489-6d5b-40f8-a742-ca71b2b84277"}
This boot-order makes it hard to track active domains by listening to
life-cycle events. One could theoretically still always fetch the VM state
in the event callback and check the state, but if the state is not
immediately transferred with the event itself, it can already be outdated,
so this might be racy (intransparent for the libvirt bindings user), and as
described in (3) currently not even possible. In general the real existing
events seem to differ quite significantly from the described life-cycle in
[1].
3) "Defined" event is triggered before the domain is completely defined
{"event_type": "Defined", "timestamp": "2016-11-25T12:02:44.037817Z",
"reason": "Added", "domain_name": "core_node", "domain_id":
"b9906489-6d5b-40f8-a742-ca71b2b84277"}
{"event_type": "Resumed", "timestamp": "2016-11-25T12:02:44.813104Z",
"reason": "Unpaused", "domain_name": "core_node", "domain_id":
"b9906489-6d5b-40f8-a742-ca71b2b84277"}
{"event_type": "Started", "timestamp": "2016-11-25T12:02:44.813733Z",
"reason": "Booted", "domain_name": "core_node", "domain_id":
"b9906489-6d5b-40f8-a742-ca71b2b84277"}
When I try to process the first event and do a xmldump I get:
Event: [Code-42] [Domain-10] Domain not found: no domain with matching
uuid 'b9906489-6d5b-40f8-a742-ca71b2b84277' (core_node)
So it seems like I get the event before the domain is completely ready.
4) There libvirt domain description is not versioned
I would expect that every time I update a domainxml (update from third
party entity), or an event is generated (update from libvirt), that the
resource version of a Domain is increased and that I get this resource
version when I do a xmldump or when I get an event. Without this there is
afaik no way to stay in sync with libvirt, even if you do regular polling
of all domains. The main issue here is that I can never know if events in
the queue arrived before my latest domain resync or after it.
Also not that this is not about delivery guarantees of events. It is just
about having a consistent view of a VM and the individual event. If I have
resource versions, I can decide if an event is still interesting for me or
not, which is exactly what I need to solve the syncing problem above.
When I do a complete relisting of all domains to syn, I know which version
I got and I can then see on every event if it is newer or older.
If along side with the event, the domain xml, the VM state, and the
resource version would be sent to a client, it would be even better. Then,
whenever there is a new event for a VM in the queue, I can be sure that
this domainxml I see is the one which triggered the event. This xml is then
a complete representation for this revision number.
Would be nice to hear your thoughts to these points.
Best Regards,
Roman
[1]
https://wiki.libvirt.org/page/VM_lifecycle#States_that_a_guest_domain_can_b…
3
10