This is successor to [1] but I changed the subject as in the review the patch
'qemu: sync backing chain update in virDomainGetBlockJobInfo' was not
considered good one from design POV. However I think the basic patch is helpful
to address similar issues. Look at [*] for example, there it allows to sync
backing chains during query block stats.
In discussion of [1] I stated that first patch will also allow to get rid of
stale block job events on reconnection to qemu. But this will require
additional work actually so with this patch series stale events are still
present. And in the discussion it was also mentioned by Peter that stale events
are not harmful for legacy blockjobs code. I also removed previous attempts to
eliminate some of stale events.
I still keep patch for virDomainGetBlockJobInfo. May be in comparsion to [*]
the approach the patch takes will look not so bad :)
[1] First version of the patch series
https://www.redhat.com/archives/libvir-list/2020-October/msg01133.html
Nikolay Shirokovskiy (10):
qemu: add option to process offloaded legacy blockjob event ealier
qemu: reconnect: precreate legacy blockjobs
qemu: remove extra block job finalize on reconnect
qemu: remove stale cleanup in qemuProcessRefreshLegacyBlockjob
qemu: add note for outdated legacy block job events
qemu: use autoptr in qemuProcessRefreshLegacyBlockjobs
qemu: refresh backing chain after block job reconnection
qemu: move code that depends on backing chain appropriately
qemu: fix race on legacy block completion and quering stats [*]
qemu: sync backing chain update in virDomainGetBlockJobInfo
src/qemu/qemu_blockjob.c | 2 +-
src/qemu/qemu_blockjob.h | 7 +++
src/qemu/qemu_driver.c | 50 +++++++++++-----
src/qemu/qemu_process.c | 149 ++++++++++++++++++++++++++++-------------------
4 files changed, 132 insertions(+), 76 deletions(-)
--
1.8.3.1