On 04/24/2018 10:24 AM, Kevin Wolf wrote: > Before we can make x-blockdev-create a background job, we need to > generalise the job infrastructure so that it can be used without any > associated block node. > > This series extracts a Job object from the block job infrastructure, > which should contain everything related to jobs that doesn't require the > block layer to be involved. > > The split between BlockJob and Job is reasonably complete as of this RFC > (though there are still some rough edges). Missing are mainly: > > * Some cleanups. This means mostly TODOs left for functions moved to > job.c that should become static again, but were still called from > blockjob.c. At this point, most of these public declarations aren't > actually necessary any more, or very little is missing to make them > unnecessary. > > * A QMP interface that can be used with non-block job. The existing > block-job-* QMP commands will tell the user that they don't know the > job if you pass the ID of a non-block job. > > * The actual conversion of x-blockdev-create to Job, as a proof of > concept that the generalised infrastructure actually works.
I didn't review the second half as closely, but did glance through the whole series. Overall, I like what I'm seeing; it looks like you have indeed extracted the non-block portions into a reusable framework that can be extended to other uses. It would also be interesting to see what other long-running operations we can map into this scheme, such as migration or capturing a screenshot. -- Eric Blake, Principal Software Engineer Red Hat, Inc. +1-919-301-3266 Virtualization: qemu.org | libvirt.org
signature.asc
Description: OpenPGP digital signature