[libvirt] [PATCH v3 0/5] Add support for graphics to get a IPv6 address
by John Ferlan
Update to Luyao's series - figured I'd repost just to make it easier
rather than continued replies...
v2 here:
http://www.redhat.com/archives/libvir-list/2015-February/msg01228.html
Changes since v2:
* Split patch 1 into two parts - one to create the IPAddress shim
that just calls the existing (and now static) IPv4 code.
* Adjust remainder of patches according to my review comments (hopefully
and thus why I'm reposting)
John Ferlan (1):
util: Replace virNetDevGetIPv4Address with virNetDevGetIPAddress
Luyao Huang (4):
util: Update virNetDevGetIPAddress to add IPv6 boolean
conf: Add 'family' attribute to <graphics> 'listen' element
network: Allow networkGetNetworkAddress to return IPv6 address
qemu: Remove unnecessary virReportError on networkGetNetworkAddress
return
docs/formatdomain.html.in | 14 ++-
docs/schemas/domaincommon.rng | 8 ++
src/conf/domain_conf.c | 21 ++++
src/conf/domain_conf.h | 10 ++
src/libvirt_private.syms | 2 +-
src/network/bridge_driver.c | 17 +--
src/network/bridge_driver.h | 6 +-
src/qemu/qemu_command.c | 22 ++--
src/util/virnetdev.c | 121 +++++++++++++++++++--
src/util/virnetdev.h | 7 +-
.../qemuxml2argv-graphics-listen-network-ipv4.xml | 35 ++++++
.../qemuxml2argv-graphics-listen-network-ipv6.xml | 35 ++++++
tests/qemuxml2xmltest.c | 2 +
13 files changed, 263 insertions(+), 37 deletions(-)
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-graphics-listen-network-ipv4.xml
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-graphics-listen-network-ipv6.xml
--
2.1.0
9 years, 8 months
[libvirt] [libvirt-test-API][PATCH V2 0/2] Add freepages test cases
by Jincheng Miao
Add freepages test cases.
V2:
Assign ps.strip().upper() to ps variable in free_page.py
Jincheng Miao (2):
Add freepage test
Add freepage test case to test_connection.conf
cases/test_connection.conf | 6 +++
repos/virconn/free_pages.py | 97 +++++++++++++++++++++++++++++++++++++++++++
2 files changed, 103 insertions(+), 0 deletions(-)
create mode 100644 repos/virconn/free_pages.py
9 years, 8 months
[libvirt] [PATCH] domain_conf: fix crash in virDomainObjListFindByUUIDInternal
by Michael Chapman
If a domain object is being removed and looked up concurrently we must
ensure we unlock the object before unreferencing it, since the latter
might free the object.
Signed-off-by: Michael Chapman <mike(a)very.puzzling.org>
---
src/conf/domain_conf.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index cc8616b..ce0e173 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -1068,9 +1068,9 @@ virDomainObjListFindByUUIDInternal(virDomainObjListPtr doms,
if (obj) {
virObjectLock(obj);
if (obj->removing) {
+ virObjectUnlock(obj);
if (ref)
virObjectUnref(obj);
- virObjectUnlock(obj);
obj = NULL;
}
}
--
2.1.0
9 years, 8 months
[libvirt] [PATCH 0/3] virBitmapGetBit cleanups
by Ján Tomko
Return bool instead of ignoring the return value almost everywhere.
Ján Tomko (3):
Use virBitmapNextClearBit in networkNextClassID
Return bool in virBitmapGetBit
Reverse the logic in virbitmaptest
src/conf/domain_conf.c | 4 +---
src/conf/node_device_conf.c | 4 +---
src/conf/snapshot_conf.c | 6 ++----
src/conf/storage_conf.c | 4 +---
src/libxl/libxl_domain.c | 4 +---
src/libxl/libxl_driver.c | 5 +----
src/network/bridge_driver.c | 8 +++-----
src/nodeinfo.c | 6 +-----
src/qemu/qemu_capabilities.c | 8 +++-----
src/qemu/qemu_command.c | 12 +-----------
src/qemu/qemu_driver.c | 15 +++------------
src/qemu/qemu_process.c | 13 ++++---------
src/storage/storage_backend.c | 4 +---
src/test/test_driver.c | 5 +----
src/util/virbitmap.c | 13 +++++--------
src/util/virbitmap.h | 6 +++---
src/util/vircgroup.c | 4 +---
src/util/virdnsmasq.c | 7 ++-----
src/util/virportallocator.c | 14 ++------------
src/util/virprocess.c | 9 ++-------
src/xen/xen_driver.c | 4 +---
src/xen/xend_internal.c | 5 +----
tests/virbitmaptest.c | 18 ++++--------------
tools/virsh-domain.c | 6 ++----
24 files changed, 47 insertions(+), 137 deletions(-)
--
2.0.5
9 years, 8 months
[libvirt] [PATCH] {domain, network}_conf: disable autostart when deleting config
by Michael Chapman
Undefining a running, autostarted domain removes the autostart link, but
dom->autostart is not cleared. If the domain is subsequently redefined,
libvirt thinks it is already autostarted and will not create the link
even if requested:
# virsh dominfo example | grep Autostart
Autostart: enable
# ls /etc/libvirt/qemu/autostart/example.xml
/etc/libvirt/qemu/autostart/example.xml
# virsh undefine example
Domain example has been undefined
# virsh define example.xml
Domain example defined from example.xml
# virsh dominfo example | grep Autostart
Autostart: enable
# virsh autostart example
Domain example marked as autostarted
# ls /etc/libvirt/qemu/autostart/example.xml
ls: cannot access /etc/libvirt/qemu/autostart/example.xml: No such file or directory
This commit ensures dom->autostart is cleared whenever the config and
autostart link (if present) are removed.
The bridge network driver cleared this flag itself in networkUndefine.
This commit moves this into virNetworkDeleteConfig for symmetry with
virDomainDeleteConfig, and to ensure it is not missed in future network
drivers.
Signed-off-by: Michael Chapman <mike(a)very.puzzling.org>
---
src/conf/domain_conf.c | 1 +
src/conf/network_conf.c | 1 +
src/network/bridge_driver.c | 1 -
3 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index cc8616b..a8f4ce2 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -20998,6 +20998,7 @@ virDomainDeleteConfig(const char *configDir,
/* Not fatal if this doesn't work */
unlink(autostartLink);
+ dom->autostart = 0;
if (unlink(configFile) < 0 &&
errno != ENOENT) {
diff --git a/src/conf/network_conf.c b/src/conf/network_conf.c
index 9c1d578..779a08a 100644
--- a/src/conf/network_conf.c
+++ b/src/conf/network_conf.c
@@ -3077,6 +3077,7 @@ int virNetworkDeleteConfig(const char *configDir,
/* Not fatal if this doesn't work */
unlink(autostartLink);
+ net->autostart = 0;
if (unlink(configFile) < 0) {
virReportSystemError(errno,
diff --git a/src/network/bridge_driver.c b/src/network/bridge_driver.c
index 5752acb..5158078 100644
--- a/src/network/bridge_driver.c
+++ b/src/network/bridge_driver.c
@@ -3050,7 +3050,6 @@ networkUndefine(virNetworkPtr net)
driver->networkAutostartDir,
network) < 0)
goto cleanup;
- network->autostart = 0;
event = virNetworkEventLifecycleNew(network->def->name,
network->def->uuid,
--
2.1.0
9 years, 8 months
[libvirt] CfP 10th Workshop on Virtualization in High-Performance Cloud Computing (VHPC '15)
by VHPC 15
=================================================================
CALL FOR PAPERS
10th Workshop on Virtualization in High-Performance Cloud Computing (VHPC
'15)
held in conjunction with Euro-Par 2015, August 24-28, Vienna, Austria
(Springer LNCS)
=================================================================
Date: August 25, 2015
Workshop URL: http://vhpc.org
Paper Submission Deadline: May 22, 2015
CALL FOR PAPERS
Virtualization technologies constitute a key enabling factor for flexible
resource
management in modern data centers, cloud environments, and increasingly in
HPC as well. Providers need to dynamically manage complex infrastructures
in a
seamless fashion for varying workloads and hosted applications,
independently of
the customers deploying software or users submitting highly dynamic and
heterogeneous workloads. Thanks to virtualization, we have the ability to
manage
vast computing and networking resources dynamically and close to the
marginal
cost of providing the services, which is unprecedented in the history of
scientific
and commercial computing.
Various virtualization technologies contribute to the overall picture in
different
ways: machine virtualization, with its capability to enable consolidation
of multiple
under-utilized servers with heterogeneous software and operating systems
(OSes),
and its capability to live-migrate a fully operating virtual machine (VM)
with a very
short downtime, enables novel and dynamic ways to manage physical servers;
OS-level virtualization, with its capability to isolate multiple user-space
environments and to allow for their co-existence within the same OS kernel,
promises to provide many of the advantages of machine virtualization with
high
levels of responsiveness and performance; I/O Virtualization allows physical
network adapters to take traffic from multiple VMs; network virtualization,
with its
capability to create logical network overlays that are independent of the
underlying physical topology and IP addressing, provides the fundamental
ground on top of which evolved network services can be realized with an
unprecedented level of dynamicity and flexibility; These technologies
have to be inter-mixed and integrated in an intelligent way, to support
workloads that are increasingly demanding in terms of absolute performance,
responsiveness and interactivity, and have to respect well-specified
Service-
Level Agreements (SLAs), as needed for industrial-grade provided services.
Indeed, among emerging and increasingly interesting application domains
for virtualization, we can find big-data application workloads in cloud
infrastructures, interactive and real-time multimedia services in the cloud,
including real-time big-data streaming platforms such as used in real-time
analytics supporting nowadays a plethora of application domains. Distributed
cloud infrastructures promise to offer unprecedented responsiveness levels
for
hosted applications, but that is only possible if the underlying
virtualization
technologies can overcome most of the latency impairments typical of current
virtualized infrastructures (e.g., far worse tail-latency).
The Workshop on Virtualization in High-Performance Cloud Computing (VHPC)
aims to bring together researchers and industrial practitioners facing the
challenges
posed by virtualization in order to foster discussion, collaboration,
mutual exchange
of knowledge and experience, enabling research to ultimately provide novel
solutions for virtualized computing systems of tomorrow.
The workshop will be one day in length, composed of 20 min paper
presentations,
each followed by 10 min discussion sections, and lightning talks, limited
to 5
minutes. Presentations may be accompanied by interactive demonstrations.
TOPICS
Topics of interest include, but are not limited to:
- Virtualization in supercomputing environments, HPC clusters, cloud HPC
and grids
- Optimizations of virtual machine monitor platforms, hypervisors and
OS-level virtualization
- Hypervisor and network virtualization QoS and SLAs
- Cloud based network and system management for SDN and NFV
- Management, deployment and monitoring of virtualized environments
- Performance measurement, modelling and monitoring of virtualized/cloud
workloads
- Programming models for virtualized environments
- Cloud reliability, fault-tolerance, high-availability and security
- Heterogeneous virtualized environments, virtualized accelerators, GPUs
and co-processors
- Optimized communication libraries/protocols in the cloud and for HPC in
the cloud
- Topology management and optimization for distributed virtualized
applications
- Cluster provisioning in the cloud and cloud bursting
- Adaptation of emerging HPC technologies (high performance networks, RDMA,
etc..)
- I/O and storage virtualization, virtualization aware file systems
- Job scheduling/control/policy in virtualized environments
- Checkpointing and migration of VM-based large compute jobs
- Cloud frameworks and APIs
- Energy-efficient / power-aware virtualization
Important Dates
April 29, 2015 - Abstract registration
May 22, 2015 - Full paper submission
June 19, 2014 - Acceptance notification
October 2, 2014 - Camera-ready version due
August 25, 2014 - Workshop Date
TPC
CHAIR
Michael Alexander (chair), TU Wien, Austria
Anastassios Nanos (co-chair), NTUA, Greece
Balazs Gerofi (co-chair), RIKEN Advanced Institute for Computational
Science, Japan
PROGRAM COMMITTEE
Stergios Anastasiadis, University of Ioannina, Greece
Costas Bekas, IBM Zurich Research Laboratory, Switzerland
Jakob Blomer, CERN
Ron Brightwell, Sandia National Laboratories, USA
Roberto Canonico, University of Napoli Federico II, Italy
Julian Chesterfield, OnApp, UK
Patrick Dreher, MIT, USA
William Gardner, University of Guelph, Canada
Kyle Hale, Northwestern University, USA
Marcus Hardt, Karlsruhe Institute of Technology, Germany
Iftekhar Hussain, Infinera, USA
Krishna Kant, Temple University, USA
Eiji Kawai, National Institute of Information and Communications
Technology, Japan
Romeo Kinzler, IBM, Switzerland
Kornilios Kourtis, ETH, Switzerland
Nectarios Koziris, National Technical University of Athens, Greece
Massimo Lamanna, CERN
Che-Rung Roger Lee, National Tsing Hua University, Taiwan
Helge Meinhard, CERN
Jean-Marc Menaud, Ecole des Mines de Nantes France
Christine Morin, INRIA, France
Amer Qouneh, University of Florida, USA
Seetharami Seelam, IBM Watson Research Center, USA
Josh Simons, VMWare, USA
Borja Sotomayor, University of Chicago, USA
Kurt Tutschku, Blekinge Institute of Technology, Sweden
Yasuhiro Watashiba, Osaka University, Japan
Chao-Tung Yang, Tunghai University, Taiwan
PAPER SUBMISSION-PUBLICATION
Papers submitted to the workshop will be reviewed by at least two
members of the program committee and external reviewers. Submissions
should include abstract, key words, the e-mail address of the
corresponding author, and must not exceed 10 pages, including tables
and figures at a main font size no smaller than 11 point. Submission
of a paper should be regarded as a commitment that, should the paper
be accepted, at least one of the authors will register and attend the
conference to present the work.
Accepted papers will be published in the Springer LNCS series - the
format must be according to the Springer LNCS Style. Initial
submissions are in PDF; authors of accepted papers will be requested
to provide source files.
Format Guidelines:
http://www.springer.de/comp/lncs/authors.html
Submission Link:
https://easychair.org/conferences/?conf=europar2015ws
GENERAL INFORMATION
The workshop is one day in length and will be held in conjunction with
Euro-Par 2015, 24-28 August, Vienna, Austria
9 years, 8 months
[libvirt] [PATCH] qemu: fix memory leak in qemuAgentGetFSInfo
by Chen Fan
in virDomainFSInfoFree(), don't free the virDomainFSInfo data.
==10670== 80 bytes in 2 blocks are definitely lost in loss record 576 of 793
==10670== at 0x4A06BC3: calloc (vg_replace_malloc.c:618)
==10670== by 0x509DEBD: virAlloc (viralloc.c:144)
==10670== by 0x19FBD558: qemuAgentGetFSInfo (qemu_agent.c:1837)
==10670== by 0x1A03CF91: qemuDomainGetFSInfo (qemu_driver.c:19238)
Signed-off-by: Chen Fan <chen.fan.fnst(a)cn.fujitsu.com>
---
src/libvirt-domain.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/src/libvirt-domain.c b/src/libvirt-domain.c
index 04545fd..7f8a7ce 100644
--- a/src/libvirt-domain.c
+++ b/src/libvirt-domain.c
@@ -11337,4 +11337,6 @@ virDomainFSInfoFree(virDomainFSInfoPtr info)
for (i = 0; i < info->ndevAlias; i++)
VIR_FREE(info->devAlias[i]);
VIR_FREE(info->devAlias);
+
+ VIR_FREE(info);
}
--
1.9.3
9 years, 8 months
[libvirt] [PATCH] virQEMUCapsInitQMP: Don't dispose locked @vm
by Michal Privoznik
When creating qemu capabilities, a dummy virDomainObj is created just
because our monitor code expects that. However, the object is created
locked already. Then, under cleanup label, we simply unref the object
which results in whole domain object to be disposed. The object lock
is destroyed subsequently, but hey - it's still locked:
==24845== Thread #14's call to pthread_mutex_destroy failed
==24845== with error code 16 (EBUSY: Device or resource busy)
==24845== at 0x4C3024E: pthread_mutex_destroy (in /usr/lib64/valgrind/vgpreload_helgrind-amd64-linux.so)
==24845== by 0x531F72E: virMutexDestroy (virthread.c:83)
==24845== by 0x5302977: virObjectLockableDispose (virobject.c:237)
==24845== by 0x5302A89: virObjectUnref (virobject.c:265)
==24845== by 0x1DD37866: virQEMUCapsInitQMP (qemu_capabilities.c:3397)
==24845== by 0x1DD37CC6: virQEMUCapsNewForBinary (qemu_capabilities.c:3481)
==24845== by 0x1DD381E2: virQEMUCapsCacheLookup (qemu_capabilities.c:3609)
==24845== by 0x1DD30F8A: virQEMUCapsInitGuest (qemu_capabilities.c:744)
==24845== by 0x1DD31889: virQEMUCapsInit (qemu_capabilities.c:1020)
==24845== by 0x1DD7DD36: virQEMUDriverCreateCapabilities (qemu_conf.c:888)
==24845== by 0x1DDC57C0: qemuStateInitialize (qemu_driver.c:803)
==24845== by 0x53DC743: virStateInitialize (libvirt.c:777)
==24845==
Signed-off-by: Michal Privoznik <mprivozn(a)redhat.com>
---
src/qemu/qemu_capabilities.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index 8193805..dce40e0 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -3394,7 +3394,10 @@ virQEMUCapsInitQMP(virQEMUCapsPtr qemuCaps,
if (monpath)
ignore_value(unlink(monpath));
VIR_FREE(monpath);
- virObjectUnref(vm);
+ if (vm) {
+ virObjectUnlock(vm);
+ virObjectUnref(vm);
+ }
virObjectUnref(xmlopt);
if (pid != 0) {
--
2.0.5
9 years, 8 months
[libvirt] [PATCH 0/6] Follow-up patches for IOThread API/display
by John Ferlan
Based on jtomko's review of the IOThread series and my foray into the
libvirt-perl bindings, these patches make the following adjustments:
Patch 1 - Found while generating the virsh iothreadpin description, the
vcpupin description had a few missing words
Patch 2 - While working on the libvirt-perl bindings - I found I was a
bit overaggressive with my GetIOThreadsInfo interface with regard
to checking ReadOnly unnecessarily
Patch 3 - Adjust the IOThread CPU Affnity algorithm based on jtomko's review
comments
Patch 4 - Fallout because I ran the patches through my Coverity checker.
Patch 5 - Similar to IOThread - adjust the GetVcpuInfo CPU Affinity algorithm
for the returned cpumap
Patch 5 - Similar to IOThread - adjust the GetEmulatorInfo CPU Affinity
algorithm for the returned cpumap
John Ferlan (6):
Fix syntax for vcpupin description
Remove ReadOnly check for GetIOThreadsInfo
qemu: Change/Fix IOThread CPU affinity bitmap manipulation
qemu: Resolve Coverity CHECKED_RETURN issue
qemu: Change qemuDomainGetVcpuPinInfo bitmap manipulation
qemu: Change qemuDomainGetEmulatorPinInfo bitmap manipulation
src/libvirt-domain.c | 1 -
src/qemu/qemu_driver.c | 177 +++++++++++++++++++++----------------------------
tools/virsh.pod | 4 +-
3 files changed, 76 insertions(+), 106 deletions(-)
--
2.1.0
9 years, 8 months
[libvirt] [PATCH] qemu: don't fill in nicindexes for session mode libvirtd
by Laine Stump
Commit 4bbe1029f fixed a problem in commit f7afeddc by moving the call
to virNetDevGetIndex() to a location common to all interface types (so
that the niceindex array would be filled in for macvtap as well as tap
interfaces), but the location was *too* common, as the original call
to virNetDevGetIndex() had been in a section qualified by "if
(cfg->privileged)". The result was that the "fixed" libvirtd would try
to call virNetDevGetIndex() even for session mode libvirtd, and end up
failing with the log message:
Unable to open control socket: Operation not permitted
To remedy that, this patch qualifies the call to virNetDevGetIndex()
in its new location with cfg->privileged.
This resolves https://bugzilla.redhat.com/show_bug.cgi?id=1198244
---
If someone (Rich?) needs this pushed before I am awake, please feel
free to push it. (also push to the 1.2.13-maint branch if you do)
src/qemu/qemu_command.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index 1510797..3d1483e 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -7861,6 +7861,7 @@ qemuBuildInterfaceCommandLine(virCommandPtr cmd,
char **tapfdName = NULL;
char **vhostfdName = NULL;
int actualType = virDomainNetGetActualType(net);
+ virQEMUDriverConfigPtr cfg = virQEMUDriverGetConfig(driver);
virNetDevBandwidthPtr actualBandwidth;
size_t i;
@@ -7936,7 +7937,7 @@ qemuBuildInterfaceCommandLine(virCommandPtr cmd,
/* network and bridge use a tap device, and direct uses a
* macvtap device
*/
- if (nicindexes && nnicindexes && net->ifname) {
+ if (cfg->privileged && nicindexes && nnicindexes && net->ifname) {
if (virNetDevGetIndex(net->ifname, &nicindex) < 0 ||
VIR_APPEND_ELEMENT(*nicindexes, *nnicindexes, nicindex) < 0)
goto cleanup;
--
2.1.0
9 years, 8 months