[libvirt] [PATCH 0/2] Adding reflink support for XFS and others.
by Julio Faracco
This serie add XFS library to use the macro for reflink (clone). This is
the case where BTRFS is not available but XFS is. In case of both is
unavailable, the code will use FICLONE from filesystem library if it is
defined. This implementation is similar to copy command. If you run a
copy and trace the syscalls, you will see that ioctl uses
BTRFS_IOC_CLONE or FICLONE to create a reflink.
Julio Faracco (2):
configure: Adding XFS library/headers check.
storage: Rename btrfsCloneFile to support other filesystems.
configure.ac | 7 +++++++
src/storage/storage_util.c | 20 ++++++++++++++------
2 files changed, 21 insertions(+), 6 deletions(-)
--
2.17.1
6 years, 5 months
[libvirt] [dbus PATCH] gitignore: Add trailing slashes to directory patterns
by Andrea Bolognani
This makes it explicit that they're meant to ignore entire
directories rather than single files.
Signed-off-by: Andrea Bolognani <abologna(a)redhat.com>
---
.gitignore | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/.gitignore b/.gitignore
index ca9e4e1..45a1eb4 100644
--- a/.gitignore
+++ b/.gitignore
@@ -7,9 +7,9 @@
*Makefile
*Makefile.in
*~
-.deps
-.libs
-__pycache__
+.deps/
+.libs/
+__pycache__/
vgcore.*
/AUTHORS
--
2.17.1
6 years, 5 months
[libvirt] [dbus PATCH] gitignore: add tests/.pytest_cache
by Anya Harter
Signed-off-by: Anya Harter <aharter(a)redhat.com>
---
.gitignore | 1 +
1 file changed, 1 insertion(+)
diff --git a/.gitignore b/.gitignore
index ca9e4e1..c41c82c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -44,3 +44,4 @@ vgcore.*
/src/org.libvirt.service
/tests/test_util
+/tests/.pytest_cache
--
2.17.1
6 years, 5 months
[libvirt] [PATCH python] fix build with older libvirt missing virNWFilterBindingPtr
by Daniel P. Berrangé
While we correctly disable all public API bindings that rely on
virNWFilterBindingPtr, the generator is still creating a helper function
that needs it - libvirt_virNWFilterBinding_pointer. Making this helper
conditional is a little hairy, so just provide a trivial typedef to keep
it happy.
Signed-off-by: Daniel P. Berrangé <berrange(a)redhat.com>
---
typewrappers.h | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/typewrappers.h b/typewrappers.h
index 1570c6a..4423774 100644
--- a/typewrappers.h
+++ b/typewrappers.h
@@ -27,6 +27,10 @@
typedef ssize_t Py_ssize_t;
#endif
+#if !LIBVIR_CHECK_VERSION(4, 5, 0)
+typedef struct _virNWFilterBinding *virNWFilterBindingPtr;
+#endif
+
#define PyvirConnect_Get(v) (((v) == Py_None) ? NULL : \
(((PyvirConnect_Object *)(v))->obj))
--
2.17.1
6 years, 5 months
[libvirt] [PATCH] examples: Remove config.h from hellolibvirt and openauth
by Marcos Paulo de Souza
These two examples do not use any definition from config.h, and by
removing it these examples can be compiled standalone.
Signed-off-by: Marcos Paulo de Souza <marcos.souza.org(a)gmail.com>
---
When trying to remove config.h from domtop and domsuspend, a later inclusion of
unistd.h complains about the missing config.h.
This unistd.h come from gnulib, so I need more time to check why this header
would complain, so for now just these examples are a good start ...
examples/hellolibvirt/hellolibvirt.c | 2 --
examples/openauth/openauth.c | 2 --
2 files changed, 4 deletions(-)
diff --git a/examples/hellolibvirt/hellolibvirt.c b/examples/hellolibvirt/hellolibvirt.c
index 02c4401987..bfb12846e6 100644
--- a/examples/hellolibvirt/hellolibvirt.c
+++ b/examples/hellolibvirt/hellolibvirt.c
@@ -2,8 +2,6 @@
* hypervisor and gather a few bits of information about domains.
* Similar API's exist for storage pools, networks, and interfaces. */
-#include <config.h>
-
#include <stdio.h>
#include <stdlib.h>
#include <libvirt/libvirt.h>
diff --git a/examples/openauth/openauth.c b/examples/openauth/openauth.c
index eef46d5f52..efd21c374f 100644
--- a/examples/openauth/openauth.c
+++ b/examples/openauth/openauth.c
@@ -1,8 +1,6 @@
/* This is a copy of the hellolibvirt example demonstaring how to use
* virConnectOpenAuth with a custom auth callback */
-#include <config.h>
-
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
--
2.17.1
6 years, 5 months
[libvirt] [PATCH 0/1] Changed LPC slot from 1 to 31
by Ivan.Mishonov@redhat.com
From: Ivan Mishonov <ivan(a)conquex.com>
There was no keyboard input on Graphical UEFI guests running Windows
2016. Changed slot number according to the example given in the FreeBSD
Handbook section related to bhyve and Graphical UEFI guests
Ivan Mishonov (1):
Changed LPC slot from 1 to 31
src/bhyve/bhyve_command.c | 2 +-
src/bhyve/bhyve_device.c | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
--
2.18.0
6 years, 5 months
[libvirt] [PATCH 0/2] Minor fixes for virTypedParams(De)Serialize
by Marc Hartmayer
Some minor fixes and two questions:
* Is the first method, which is described in the documentation for
virTypedParamsDeserialize, in sync with the actual code? ("Older
APIs do not rely on deserializer allocating memory for @params,
...")
* Do we also have to set *nparams = 0 in case of an error and the user
has allocated the memory? (virTypedParamsDeserialize)
Marc Hartmayer (2):
virTypedParamsSerialize: minor fixes
virTypedParamsDeserialize: minor fixes
src/util/virtypedparam.c | 12 +++++++-----
1 file changed, 7 insertions(+), 5 deletions(-)
--
2.13.4
6 years, 5 months
[libvirt] [RFCv2 PATCH 0/5] Introduce RDT memory bandwidth allocation support
by bing.niu@intel.com
From: Bing Niu <bing.niu(a)intel.com>
This series is to introduce RDT memory bandwidth allocation support by extending
current virresctrl implementation.
The Memory Bandwidth Allocation (MBA) feature provides indirect and approximate
control over memory bandwidth available per-core. This feature provides a method to
control applications which may be over-utilizing bandwidth relative to their priority
in environments such as the data-center. The details can be found in Intel's SDM 17.19.7.
Kernel supports MBA through resctrl file system same as CAT. Each resctrl group have a
MB parameter to control how much memory bandwidth it can utilize in unit of percentage.
In this series, MBA is enabled by enhancing existing virresctrl implementation. The
policy employed for MBA is similar with CAT: The sum of each MBA group's bandwidth
dose not exceed 100%.
The enhancement of virresctrl include two parts:
Part 1: Add two new structures virResctrlInfoMB and virResctrlAllocMB for collecting
host system MBA capability and domain memory bandwidth allocation. Those two
structures are the extension of existing virResctrlInfo and virResctrlAlloc. With
them, virresctrl framework can support MBA and CAT concurrently. Each virResctrlAlloc
represent a resource allocation including CAT, or MBA, or CAT&MBA. The policy of MBA is
that: total memory bandwidth of each resctrl group, created by virresctrl, does not
exceed to 100%.
Part 2: On XML part, add new elements to host capabilities query and domain allocation to support
memory bandwidth allocation.
----------------------------------------------------------------------------------------------
For host capabilities XML, new XML format like below example,
<host>
.....
<memory>
<node id='0' cpus='0-19'>
<control granularity='10' min ='10' maxAllocs='8'/>
</node>
</memory>
</host>
granularity --- memory bandwidth granularity
min --- minimum memory bandwidth allowed
maxAllocs --- maximum concurrent memory bandwidth allocation allowed.
----------------------------------------------------------------------------------------------
For domain XML, new format as below example
<domain type='kvm' id='2'>
......
<cputune>
......
<shares>1024</shares>
<memorytune vcpus='0-1'>
<node id='0' bandwidth='20'/>
</memorytune>
</cputune>
......
</domain>
id --- node where memory bandwidth allocation will happen
bandwidth --- bandwidth allocated in percentage
----------------------------------------------------------------------------------------------
Changelog:
v1->v2:
Jano's comment: 1. put renaming parts into separated patches.
2. set the initial return value as -1.
3. using full name in structure definition.
4. do not use VIR_CACHE_TYPE_LAST for memory bandwidth allocation formatting.
Pavel's comment: 1. add host capabilities XML for memory bandwidth allocation.
2. do not mix use cachetune section in XML for memory bandwidth allocation in
domain XML. define a dedicated one for memory bandwidth allocation.
Bing Niu (5):
util: Rename and packing parts of virresctrl
util: Add memory bandwidth support to resctrl
conf: rename cachetune to restune
conf: Introduce cputune/memorytune to support memory bandwidth
allocation
conf: add memory bandwidth allocation capability of host
src/conf/capabilities.c | 112 +++++++++++
src/conf/capabilities.h | 11 ++
src/conf/domain_conf.c | 304 ++++++++++++++++++++++++++---
src/conf/domain_conf.h | 10 +-
src/libvirt_private.syms | 4 +-
src/qemu/qemu_process.c | 18 +-
src/util/virresctrl.c | 496 ++++++++++++++++++++++++++++++++++++++++++++---
src/util/virresctrl.h | 35 +++-
8 files changed, 918 insertions(+), 72 deletions(-)
--
2.7.4
6 years, 5 months
[libvirt] [PATCH 0/9] Resolve libvirtd hang on termination with connected long running client
by John Ferlan
RFC:
https://www.redhat.com/archives/libvir-list/2018-January/msg00318.html
Adjustments since RFC...
Patches 1&2: No change, were already R-B'd
Patch 3: Removed code as noted in code review, update commit message
Patch 4: From old series removed, see below for more details
Patch 9: no change
NB: Patches 5-8 and 10 from Nikolay Shirokovskiy <nshirokovskiy(a)virtuozzo.com>
are removed as they seemed to not be necessary
Replaced the former patch 4 with series of patches to (slowly) provide
support to disable new connections, handle removing waiting jobs, causing
the waiting workers to quit, and allow any running jobs to complete.
As it turns out, waiting for running jobs to complete cannot be done
from the virNetServerClose callbacks because that means the event loop
processing done during virNetServerRun will not allow any currently
long running worker job thread a means to complete.
So when virNetDaemonQuit is called as a result of the libvirtd signal
handlers for SIG{QUIT|INT|TERM}, instead of just causing virNetServerRun
to quit immediately, alter to using a quitRequested flag and then use
that quitRequested flag to check for long running worker threads before
causing the event loop to quit resulting in libvirtd being able to run
through the virNetDaemonClose processing.
John Ferlan (9):
libvirtd: Alter refcnt processing for domain server objects
libvirtd: Alter refcnt processing for server program objects
netserver: Remove ServiceToggle during ServerDispose
util: Introduce virThreadPoolDrain
rpc: Introduce virNetServerQuitRequested
rpc: Introduce virNetServerWorkerCount
rpc: Alter virNetDaemonQuit processing
docs: Add news article for libvirtd issue
APPLY ONLY FOR TESTING PURPOSES
daemon/libvirtd.c | 43 +++++++++++++++++++++++---------
docs/news.xml | 12 +++++++++
src/libvirt_private.syms | 1 +
src/libvirt_remote.syms | 2 ++
src/qemu/qemu_driver.c | 5 ++++
src/rpc/virnetdaemon.c | 45 +++++++++++++++++++++++++++++++++-
src/rpc/virnetserver.c | 52 ++++++++++++++++++++++++++++++++++++---
src/rpc/virnetserver.h | 4 +++
src/util/virthreadpool.c | 64 ++++++++++++++++++++++++++++++++++++++++--------
src/util/virthreadpool.h | 2 ++
10 files changed, 204 insertions(+), 26 deletions(-)
--
2.13.6
6 years, 5 months
[libvirt] [PATCHv1 00/12] BaselineHypervisorCPU using QEMU QMP exchanges
by Chris Venteicher
Some architectures (S390) depend on QEMU to compute baseline CPU model and
expand a models feature set.
Interacting with QEMU requires starting the QEMU process and completing one or
more query-cpu-model-baseline QMP exchanges with QEMU in addition to a
query-cpu-model-expansion QMP exchange to expand all features in the model.
See "s390x CPU models: exposing features" patch set on Qemu-devel for discussion
of QEMU aspects.
This is part of resolution of: https://bugzilla.redhat.com/show_bug.cgi?id=1511999
Signed-off-by: Chris Venteicher <cventeic(a)redhat.com>
Chris Venteicher (12):
qemu_monitor_json: qemuMonitorCPUModelInfo / JSON conversion
qemu_monitor: Introduce qemuMonitorCPUModelInfoInit and
qemuMonitorCPUModelInfoFreeContents
qemu_monitor: Introduce qemuMonitorGetCPUModelBaseline
(query-cpu-model-baseline)
qemu_monitor: Indicate when CPUModelInfo props report migratablity
qemu_monitor: CPUModelExpansion on CPUModel with both name and
properties
cpu_conf: Calculate virCPUDef List Length function
qemu_capabilities: virCPUDef / qemuMonitorCPUModelInfo conversions
qemu_capabilities: QMPCommandPtr without shadow qmperr
qemu_capabilities: Persist QEMU instance over multiple QMP Cmds
qemu_capabilities: Introduce virQEMUCapsNewQMPCommandConnection
qemu_capabilities: Introduce virQEMUCapsQMPBaselineCPUModel (baseline
using QEMU)
qemu_driver: BaselineHypervisorCPU supports S390 using QEMU/QMP
src/conf/cpu_conf.c | 15 ++
src/conf/cpu_conf.h | 3 +
src/libvirt_private.syms | 1 +
src/qemu/qemu_capabilities.c | 335 +++++++++++++++++++++++++++++------
src/qemu/qemu_capabilities.h | 33 ++++
src/qemu/qemu_driver.c | 66 ++++++-
src/qemu/qemu_monitor.c | 90 +++++++++-
src/qemu/qemu_monitor.h | 16 +-
src/qemu/qemu_monitor_json.c | 226 +++++++++++++++++++----
src/qemu/qemu_monitor_json.h | 14 +-
tests/cputest.c | 7 +-
11 files changed, 683 insertions(+), 123 deletions(-)
--
2.17.1
6 years, 5 months