Hi, > > It would be nice for this series to evolve to a generic QMP jobs series > > so that all background operations are visible to the client and a useful > > subset of management primitives can be implemented on a per-command > > basis. Both live migration and existing block jobs could use this code > > so that we don't have multiple copies of the same infrastructure. > > Indeed, but I would need to know what proposal or requirements the > block layer have here, and I would appreciate if they took time to > review mine.
Disclaimer: Havn't looked into the qmp (especially block jobs) details too much. But I suspect we can have both, sharing most of the infrastructure, without too much effort. We have block jobs today. Other areas in qemu can use that too. So moving the jobs infrastructure from block to qmp level makes perfect sense to me. Live migration and possibly others can start using it. And once we have that building async commands on top of that is probably easy. It'll be just a primitive job which typically takes at most a few seconds to finish, has no ->cancel() callback and sends a different kind of completion notification ... cheers, Gerd