[libvirt] [PATCH 0/2] More hotplug cleanups
by Ján Tomko
Remove some dead code.
Ján Tomko (2):
qemuIsMultiFunctionDevice: return early for non-PCI addresses
qemu: remove pointless address validation on hot unplug
src/qemu/qemu_hotplug.c | 56 ++++++++-----------------------------------------
1 file changed, 9 insertions(+), 47 deletions(-)
--
2.13.0
7 years, 2 months
[libvirt] [PATCH v6 0/9] Work around the kernel mdev uevent race in nodedev
by Erik Skultety
v5 here:
https://www.redhat.com/archives/libvir-list/2017-October/msg00440.html
Since v5:
- fixed minor nitpicks
- added 3 more patches as per reviewer's suggestion to split some of the
changes even more
- patches {2,6,7,8,9}/9 are without any change
Erik Skultety (9):
nodedev: Move privileged flag from udev private data to driver's state (NEW)
nodedev: udev: Introduce udevEventMonitorSanityCheck helper function (ACKed)
nodedev: udev: Convert udev private data to a lockable object (ACKed with fixes)
nodedev: udev: Remove driver locks from stateInitialize and (NEW)
stateCleanup
nodedev: udev: Unlock the private data before setting up 'system' node (NEW)
nodedev: udev: Split udevEventHandleCallback in two functions (ACKed)
nodedev: udev: Convert udevEventHandleThread to an actual thread (ACKed)
routine
util: Introduce virFileWaitForExists (ACKed)
nodedev: udev: Hook up virFileWaitForAccess to work around uevent race (ACKed)
src/conf/virnodedeviceobj.h | 1 +
src/libvirt_private.syms | 1 +
src/node_device/node_device_udev.c | 283 +++++++++++++++++++++++++++----------
src/node_device/node_device_udev.h | 3 -
src/util/virfile.c | 31 ++++
src/util/virfile.h | 2 +
6 files changed, 245 insertions(+), 76 deletions(-)
--
2.13.6
7 years, 2 months
[libvirt] [PATCH 00/14] introduce virDomainSetLifecycleAction() API
by Pavel Hrdina
Pavel Hrdina (14):
conf: rename lifecycle enum values to correspond with typedef keyword
conf: rename virDomainLifecycleAction enum functions
conf: introduce virDomainLifecycle enum to list all lifecycle types
conf: merge virDomainLifecycleCrashAction with
virDomainLifecycleAction
qemu: pass virDomainObjPtr to qemuBuildCommandLine
qemu: pass priv data to qemuBuildMonitorCommandLine
qemu: pass priv data to qemuBuildPMCommandLine
qemu: pass priv data to qemuBuildMasterKeyCommandLine
qemu: pass priv data instead of qemuCaps and autoNodeset
lib: introduce virDomainSetLifecycleAction() API
virsh: introduce set-lifecycle-action command
qemu: move detection whether to use -no-reboot to qemu_domain
qemu: send allowReboot in migration cookie
qemu: implement virDomainSetLifecycleAction() API
docs/formatdomain.html.in | 6 +++
include/libvirt/libvirt-domain.h | 28 ++++++++++
src/conf/domain_conf.c | 84 ++++++++++++++++++++++++-----
src/conf/domain_conf.h | 26 ++-------
src/driver-hypervisor.h | 7 +++
src/libvirt-domain.c | 60 +++++++++++++++++++++
src/libvirt_private.syms | 7 ++-
src/libvirt_public.syms | 5 ++
src/libxl/libxl_conf.c | 43 ++++-----------
src/libxl/libxl_domain.c | 40 +++++++-------
src/lxc/lxc_native.c | 6 +--
src/qemu/qemu_command.c | 93 +++++++++++++-------------------
src/qemu/qemu_command.h | 11 +---
src/qemu/qemu_domain.c | 40 ++++++++++++++
src/qemu/qemu_domain.h | 9 ++++
src/qemu/qemu_driver.c | 112 +++++++++++++++++++++++++++++++++++----
src/qemu/qemu_migration.c | 7 ++-
src/qemu/qemu_migration_cookie.c | 25 ++++++++-
src/qemu/qemu_migration_cookie.h | 5 ++
src/qemu/qemu_parse_command.c | 8 +--
src/qemu/qemu_process.c | 53 ++++++++++++------
src/remote/remote_driver.c | 1 +
src/remote/remote_protocol.x | 14 ++++-
src/test/test_driver.c | 8 +--
src/vmx/vmx.c | 6 +--
src/vz/vz_sdk.c | 12 ++---
src/xenapi/xenapi_utils.c | 40 +++++++-------
src/xenapi/xenapi_utils.h | 4 +-
src/xenconfig/xen_common.c | 12 ++---
src/xenconfig/xen_sxpr.c | 18 +++----
tests/qemuxml2xmltest.c | 3 +-
tools/virsh-domain.c | 102 +++++++++++++++++++++++++++++++++++
tools/virsh.pod | 7 +++
33 files changed, 658 insertions(+), 244 deletions(-)
--
2.13.6
7 years, 2 months
[libvirt] [PATCH] bhyve: Fix build
by Jiri Denemark
Commit v3.8.0-95-gfd885a06a dropped nmodels parameter from several APIs
in src/cpu/cpu.h, but failed to update all callers.
Signed-off-by: Jiri Denemark <jdenemar(a)redhat.com>
---
Pushed under the build-breaker rule.
src/bhyve/bhyve_driver.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/bhyve/bhyve_driver.c b/src/bhyve/bhyve_driver.c
index c096b5562..5c432b25e 100644
--- a/src/bhyve/bhyve_driver.c
+++ b/src/bhyve/bhyve_driver.c
@@ -1433,7 +1433,7 @@ bhyveConnectBaselineCPU(virConnectPtr conn,
if (!(cpus = virCPUDefListParse(xmlCPUs, ncpus, VIR_CPU_TYPE_HOST)))
goto cleanup;
- if (!(cpu = cpuBaseline(cpus, ncpus, NULL, 0,
+ if (!(cpu = cpuBaseline(cpus, ncpus, NULL,
!!(flags & VIR_CONNECT_BASELINE_CPU_MIGRATABLE))))
goto cleanup;
--
2.14.2
7 years, 2 months
[libvirt] [CFP] Virt & IaaS Devroom at FOSDEM18
by Stefan Hajnoczi
I am excited to announce that the call for proposals is now open for the
Virtualization & IaaS devroom at the upcoming FOSDEM 2018, to be hosted
on February 3 and 4, 2018.
This year will mark FOSDEM’s 18th anniversary as one of the longest-running
free and open source software developer events, attracting thousands of
developers and users from all over the world. FOSDEM will be held once
again in Brussels, Belgium, on February 3 & 4, 2018.
This devroom is a collaborative effort, and is organized by dedicated
folks from projects such as OpenStack, Xen Project, oVirt, QEMU, KVM,
libvirt, and Foreman. We would like to invite all those who are involved
in these fields to submit your proposals by December 1st, 2017.
About the Devroom
The Virtualization & IaaS devroom will feature session topics such as open
source hypervisors and virtual machine managers such as Xen Project, KVM,
bhyve, and VirtualBox, and Infrastructure-as-a-Service projects such as
Apache CloudStack, OpenStack, oVirt, QEMU, OpenNebula, and Ganeti.
This devroom will host presentations that focus on topics of shared
interest, such as KVM; libvirt; shared storage; virtualized networking;
cloud security; clustering and high availability; interfacing with multiple
hypervisors; hyperconverged deployments; and scaling across hundreds or
thousands of servers.
Presentations in this devroom will be aimed at developers working on these
platforms who are looking to collaborate and improve shared infrastructure
or solve common problems. We seek topics that encourage dialog between
projects and continued work post-FOSDEM.
Important Dates
Submission deadline: 01 December 2017
Acceptance notifications: 14 December 2017
Final schedule announcement: 21 December 2017
Devroom: 03 and 04 February 2018 (two days- different rooms)
Submit Your Proposal
All submissions must be made via the Pentabarf event planning site[1]. If
you have not used Pentabarf before, you will need to create an account. If
you submitted proposals for FOSDEM in previous years, you can use your
existing account.
After creating the account, select Create Event to start the submission
process. Make sure to select Virtualization and IaaS devroom from the Track
list. Please fill out all the required fields, and provide a meaningful
abstract and description of your proposed session.
Submission Guidelines
We expect more proposals than we can possibly accept, so it is vitally
important that you submit your proposal on or before the deadline. Late
submissions are unlikely to be considered.
All presentation slots are 45 minutes, with 35 minutes planned for
presentations, and 10 minutes for Q&A.
All presentations will be recorded and made available under Creative
Commons licenses. In the Submission notes field, please indicate that you
agree that your presentation will be licensed under the CC-By-SA-4.0 or
CC-By-4.0 license and that you agree to have your presentation recorded.
For example:
"If my presentation is accepted for FOSDEM, I hereby agree to license all
recordings, slides, and other associated materials under the Creative
Commons Attribution Share-Alike 4.0 International License. Sincerely,
<NAME>."
In the Submission notes field, please also confirm that if your talk is
accepted, you will be able to attend FOSDEM and deliver your presentation.
We will not consider proposals from prospective speakers who are unsure
whether they will be able to secure funds for travel and lodging to attend
FOSDEM. (Sadly, we are not able to offer travel funding for prospective
speakers.)
Speaker Mentoring Program
As a part of the rising efforts to grow our communities and encourage a
diverse and inclusive conference ecosystem, we're happy to announce that
we'll be offering mentoring for new speakers. Our mentors can help you with
tasks such as reviewing your abstract, reviewing your presentation outline
or slides, or practicing your talk with you.
You may apply to the mentoring program as a newcomer speaker if you:
Never presented before or
Presented only lightning talks or
Presented full-length talks at small meetups (<50 ppl)
Submission Guidelines
Mentored presentations will have 25-minute slots, where 20 minutes will
include the presentation and 5 minutes will be reserved for questions.
The number of newcomer session slots is limited, so we will probably not be
able to accept all applications.
You must submit your talk and abstract to apply for the mentoring program,
our mentors are volunteering their time and will happily provide feedback
but won't write your presentation for you!
If you are experiencing problems with Pentabarf, the proposal submission
interface, or have other questions, you can email our devroom mailing
list[2] and we will try to help you.
How to Apply
In addition to agreeing to video recording and confirming that you can
attend FOSDEM in case your session is accepted, please write "speaker
mentoring program application" in the "Submission notes" field, and list
any prior speaking experience or other relevant information for your
application.
Call for Mentors
Interested in mentoring newcomer speakers? We'd love to have your help!
Please email iaas-virt-devroom at lists.fosdem.org with a short speaker
biography and any specific fields of expertise (for example, KVM,
OpenStack, storage, etc.) so that we can match you with a newcomer speaker
from a similar field. Estimated time investment can be as low as a 5-10
hours in total, usually distributed weekly or bi-weekly.
Never mentored a newcomer speaker but interested to try? As the mentoring
program coordinator, email Brian Proffitt[3] and he will be happy to answer
your questions!
Code of Conduct
Following the release of the updated code of conduct for FOSDEM, we'd like
to remind all speakers and attendees that all of the presentations and
discussions in our devroom are held under the guidelines set in the CoC and
we expect attendees, speakers, and volunteers to follow the CoC at all
times.
If you submit a proposal and it is accepted, you will be required to
confirm that you accept the FOSDEM CoC. If you have any questions about the
CoC or wish to have one of the devroom organizers review your presentation
slides or any other content for CoC compliance, please email us and we will
do our best to assist you.
Call for Volunteers
We are also looking for volunteers to help run the devroom. We need
assistance watching time for the speakers, and helping with video for the
devroom. Please contact me, Brian Proffitt, for more information.
Questions?
If you have any questions about this devroom, please send your questions to
our devroom mailing list. You can also subscribe to the list to receive
updates about important dates, session announcements, and to connect with
other attendees.
See you all at FOSDEM!
[1] <https://penta.fosdem.org/submission/FOSDEM18>
https://penta.fosdem.org/submission/FOSDEM18
[2] iaas-virt-devroom at lists.fosdem.org
<https://lists.fosdem.org/listinfo/fosdem>
[3] bkp at redhat.com
7 years, 2 months
[libvirt] [PATCH] virsh: domifaddr: clarify description of --full option
by Chen Hanxiao
From: Chen Hanxiao <chenhanxiao(a)gmail.com>
Option --full will always display the name and MAC
address of the interface.
Both virsh help and virsh man page didn't mention that.
Signed-off-by: Chen Hanxiao <chenhanxiao(a)gmail.com>
---
tools/virsh-domain-monitor.c | 2 +-
tools/virsh.pod | 6 +++---
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/tools/virsh-domain-monitor.c b/tools/virsh-domain-monitor.c
index 4c50155e1..35d04b22a 100644
--- a/tools/virsh-domain-monitor.c
+++ b/tools/virsh-domain-monitor.c
@@ -2153,7 +2153,7 @@ static const vshCmdOptDef opts_domifaddr[] = {
{.name = "full",
.type = VSH_OT_BOOL,
.flags = VSH_OFLAG_NONE,
- .help = N_("display full fields")},
+ .help = N_("always display names and MACs of interfaces")},
{.name = "source",
.type = VSH_OT_STRING,
.flags = VSH_OFLAG_NONE,
diff --git a/tools/virsh.pod b/tools/virsh.pod
index 9304ca525..db1ede880 100644
--- a/tools/virsh.pod
+++ b/tools/virsh.pod
@@ -766,9 +766,9 @@ addresses, or limited output just for one interface if I<interface> is
specified. Note that I<interface> can be driver dependent, it can be the name
within guest OS or the name you would see in domain XML. Moreover, the whole
command may require a guest agent to be configured for the queried domain under
-some drivers, notably qemu. If I<--full> is specified, the interface name is
-always displayed when the interface has multiple addresses or alias, otherwise
-it only displays the interface name for the first address, and "-" for the
+some drivers, notably qemu. If I<--full> is specified, the interface name and MAC
+address is always displayed when the interface has multiple addresses or alias,
+otherwise it only displays the interface name for the first address, and "-" for the
others. The I<--source> argument specifies what data source to use for the
addresses, currently one of 'lease' to read DHCP leases, or 'agent' to query
the guest OS via an agent. If unspecified, 'lease' is the default.
--
2.13.5
7 years, 2 months
[libvirt] [PATCH v5 0/6] Work around the kernel mdev uevent race in nodedev
by Erik Skultety
v4: https://www.redhat.com/archives/libvir-list/2017-September/msg00532.html
Since v4:
- fixed the reviewer's notes in 1/7
- dropped the original 2/7 because of converting the udev private data into a
lockable object
- current 2/6 is a new patch reworking our current locking approach of the udev
private data where we only relied on the driver global lock, after this patch,
private data are going to be a self-lockable object
- dropped the event counting from 4/7, the thread now reads everything it can
until it gets EAGAIN/EWOULDBLOCK from libudev, which renders
enablement/disablement of event loop fd polling unnecessary
-> other minor adjustments raised during review
-> dropped our udev fd sanity check from the worker thread, since the
thread will encounter a libudev error sooner or later, so the sanity check
inside the worker thread wouldn't really make a difference
Erik Skultety (6):
nodedev: Introduce udevEventMonitorSanityCheck helper function (ACKed)
nodedev: udev: Convert udev private data to a lockable object (NEW)
udev: Split udevEventHandleCallback in two functions (2/6 necessary changes)
udev: Convert udevEventHandleThread to an actual thread routine (reworked)
util: Introduce virFileWaitForExists (unchanged && ACKed)
nodedev: Work around the uevent race by hooking up
virFileWaitForAccess (unchanged && ACKed)
src/libvirt_private.syms | 1 +
src/node_device/node_device_udev.c | 281 ++++++++++++++++++++++++++++---------
src/node_device/node_device_udev.h | 3 -
src/util/virfile.c | 31 ++++
src/util/virfile.h | 2 +
5 files changed, 249 insertions(+), 69 deletions(-)
--
2.13.6
7 years, 2 months
[libvirt] [PATCH 0/3] fix crash on libvirtd termination
by Nikolay Shirokovskiy
Libvirtd termination can crash. One can use [2] patch to trigger it. Call
domstats function and send TERM to libvirtd. You'd probably see stacktrace [1].
The problem is that threads with clients requests are joined after drivers
cleanup. This patch series address this issue.
[1] Crash stacktrace
Program received signal SIGSEGV, Segmentation fault.
Thread 5 (Thread 0x7fffe6a4d700 (LWP 921916)):
#0 0x00007fffd9cb3f14 in qemuDomainObjBeginJobInternal (driver=driver@entry=0x7fffcc103e40,
obj=obj@entry=0x7fffcc1a6ca0, job=job@entry=QEMU_JOB_QUERY, asyncJob=asyncJob@entry=QEMU_ASYNC_JOB_NONE)
at qemu/qemu_domain.c:4114
#1 0x00007fffd9cb82ab in qemuDomainObjBeginJob (driver=driver@entry=0x7fffcc103e40, obj=obj@entry=0x7fffcc1a6ca0,
job=job@entry=QEMU_JOB_QUERY) at qemu/qemu_domain.c:4240
#2 0x00007fffd9d23094 in qemuConnectGetAllDomainStats (conn=0x7fffcc1bc140, doms=<optimized out>,
ndoms=<optimized out>, stats=127, retStats=0x7fffe6a4cb10, flags=<optimized out>) at qemu/qemu_driver.c:20116
#3 0x00007ffff744a166 in virDomainListGetStats (doms=0x7fffa8000a10, stats=0,
retStats=retStats@entry=0x7fffe6a4cb10, flags=0) at libvirt-domain.c:11592
#4 0x000055555557af15 in remoteDispatchConnectGetAllDomainStats (server=<optimized out>, msg=<optimized out>,
ret=0x7fffa80008e0, args=0x7fffa80008c0, rerr=0x7fffe6a4cc50, client=<optimized out>) at remote.c:6532
#5 remoteDispatchConnectGetAllDomainStatsHelper (server=<optimized out>, client=<optimized out>,
msg=<optimized out>, rerr=0x7fffe6a4cc50, args=0x7fffa80008c0, ret=0x7fffa80008e0) at remote_dispatch.h:615
#6 0x00007ffff74abba2 in virNetServerProgramDispatchCall (msg=0x55555583bf50, client=0x55555583c580,
server=0x555555810f40, prog=0x55555583a140) at rpc/virnetserverprogram.c:437
#7 virNetServerProgramDispatch (prog=0x55555583a140, server=server@entry=0x555555810f40, client=0x55555583c580,
msg=0x55555583bf50) at rpc/virnetserverprogram.c:307
#8 0x00005555555ae10d in virNetServerProcessMsg (msg=<optimized out>, prog=<optimized out>, client=<optimized out>,
srv=0x555555810f40) at rpc/virnetserver.c:148
#9 virNetServerHandleJob (jobOpaque=<optimized out>, opaque=0x555555810f40) at rpc/virnetserver.c:169
#10 0x00007ffff7390fd1 in virThreadPoolWorker (opaque=opaque@entry=0x5555558057a0) at util/virthreadpool.c:167
#11 0x00007ffff7390358 in virThreadHelper (data=<optimized out>) at util/virthread.c:206
#12 0x00007ffff457be25 in start_thread () from /lib64/libpthread.so.0
#13 0x00007ffff42a934d in clone () from /lib64/libc.so.6
Thread 1 (Thread 0x7ffff7fae880 (LWP 921909)):
#0 0x00007ffff457f945 in pthread_cond_wait@(a)GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1 0x00007ffff73905c6 in virCondWait (c=<optimized out>, m=<optimized out>) at util/virthread.c:154
#2 0x00007ffff73911e0 in virThreadPoolFree (pool=0x555555811030) at util/virthreadpool.c:290
#3 0x00005555555adb44 in virNetServerDispose (obj=0x555555810f40) at rpc/virnetserver.c:767
#4 0x00007ffff736f62b in virObjectUnref (anyobj=<optimized out>) at util/virobject.c:356
#5 0x00007ffff7343e19 in virHashFree (table=0x55555581ba40) at util/virhash.c:318
#6 0x00007ffff74a46b5 in virNetDaemonDispose (obj=0x555555812c50) at rpc/virnetdaemon.c:105
#7 0x00007ffff736f62b in virObjectUnref (anyobj=anyobj@entry=0x555555812c50) at util/virobject.c:356
#8 0x0000555555570479 in main (argc=<optimized out>, argv=<optimized out>) at libvirtd.c:1539
[2] patch to trigger crash
# diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
# index cf5e4ad..39a57aa 100644
# --- a/src/qemu/qemu_driver.c
# +++ b/src/qemu/qemu_driver.c
# @@ -20144,6 +20144,8 @@ qemuConnectGetAllDomainStats(virConnectPtr conn,
# domflags = 0;
# vm = vms[i];
#
# + sleep(5);
# +
# virObjectLock(vm);
#
# if (HAVE_JOB(privflags) &&
Nikolay Shirokovskiy (3):
daemon: finish threads on close
qemu: monitor: check monitor not closed on send
qemu: implement state driver shutdown function
daemon/libvirtd.c | 2 ++
src/driver-state.h | 4 ++++
src/libvirt.c | 18 ++++++++++++++++++
src/libvirt_internal.h | 1 +
src/libvirt_private.syms | 1 +
src/qemu/qemu_driver.c | 39 +++++++++++++++++++++++++++++++++++++++
src/qemu/qemu_monitor.c | 27 +++++++++++++--------------
src/rpc/virnetserver.c | 5 +++--
8 files changed, 81 insertions(+), 16 deletions(-)
--
1.8.3.1
7 years, 2 months
[libvirt] [PATCH 0/2] Clean up some forgotten tabs from our source files
by Erik Skultety
I don't think a reliable syntax-check rule checking tab spacing can be used,
but I can of course be proven wrong.
Erik Skultety (2):
maint: Replace tabs with spaces in all source files in repo
maint: Remove not-so-much informative block commentaries
daemon/remote.c | 7 -
docs/search.php.code.in | 350 ++++++++++++++++++++++----------------------
include/libvirt/virterror.h | 278 +++++++++++++++++------------------
src/bhyve/bhyve_monitor.c | 2 +-
src/bhyve/bhyve_process.c | 2 +-
src/conf/node_device_conf.h | 52 +++----
src/conf/nwfilter_conf.h | 2 +-
src/conf/virnodedeviceobj.c | 2 +-
src/conf/virnodedeviceobj.h | 4 +-
src/network/bridge_driver.c | 2 -
src/qemu/qemu_domain.h | 8 +-
src/qemu/qemu_monitor.h | 2 +-
src/util/viraudit.h | 4 +-
src/util/virconf.c | 35 +----
src/util/virconf.h | 10 +-
src/util/virerror.h | 5 -
src/util/virsysinfo.c | 2 +-
src/util/virxml.c | 8 +-
src/vbox/vbox_XPCOMCGlue.c | 9 --
src/xen/xen_driver.h | 2 +-
src/xen/xen_hypervisor.c | 168 ++++++++++-----------
src/xen/xen_hypervisor.h | 2 +-
src/xen/xend_internal.c | 23 +--
src/xen/xend_internal.h | 8 +-
src/xen/xs_internal.c | 18 +--
src/xen/xs_internal.h | 14 +-
src/xenconfig/xen_sxpr.c | 5 -
27 files changed, 468 insertions(+), 556 deletions(-)
--
2.13.6
7 years, 2 months