[libvirt] [PATCH v2 RFC 0/4] qemu: replace nested job with interruptible async job state

Nikolay Shirokovskiy nshirokovskiy at virtuozzo.com
Tue May 2 10:06:32 UTC 2017


This is the next version of RFC [1] 'drop nested job concept'. Actually
it is quite different from the first. Patches that accomodate callers to
use functions to enter/exit monitor with without driver and asyncJob arguments
are moved out of this series. I guess this can be done as soon as this series
is upstream. Most of approach details are in the first patch.

Pros:
- better async job and concurrent regular job isolation
- more straightforward implementation
- more simple to use - no need to pass async job argument down the stack
- safer to use - no warnings to be fixed if function is started to be
  used from asynchronous job context.

TODO:
- replace qemuDomainObjEnterMonitorAsync with qemuDomainObjEnterMonitor
- accomodate callers to qemuDomainObjExitMonitor became returning void
- remove passing driver and asyncJob down the stack
- reflect changes in THREADS.txt


[1] https://www.redhat.com/archives/libvir-list/2016-November/msg01357.html

Nikolay Shirokovskiy (4):
  qemu: replace nested job with interruptible async job state
  qemu: remove liveness check from qemuDomainObjExitMonitor
  qemu: remove nesting job usage from qemuProcessStop
  qemu: remove the rest of nested job parts

 src/conf/domain_conf.c    |  19 ----
 src/conf/domain_conf.h    |   1 -
 src/libvirt_private.syms  |   1 -
 src/qemu/qemu_domain.c    | 253 +++++++++++++++++++++++++++++-----------------
 src/qemu/qemu_domain.h    |  29 ++++--
 src/qemu/qemu_driver.c    |   2 +-
 src/qemu/qemu_migration.c |  70 +++++++------
 src/qemu/qemu_process.c   |  31 ++----
 8 files changed, 225 insertions(+), 181 deletions(-)

-- 
1.8.3.1




More information about the libvir-list mailing list