On Thu, Dec 07, 2017 at 06:33:04PM +0100, Kevin Wolf wrote: > Am 07.12.2017 um 12:56 hat Kashyap Chamarthy geschrieben:
[...] > > So from the above interesting discussion, it seems like Kevin is leaning > > towards a single job type that offers 'stream', 'commit', 'backup', and > > 'mirror' functionality as part of a single command / job type. Based on > > an instinct, this sounds a bit too stuffy and complex to me. > > > > And John seems to be leaning towards two block device job types: > > > > - 'blockdev-foo' that offers both current 'stream' and 'commit' > > functionality as two different options to the same QMP command; and > > > > - 'blockdev-bar' will offer both 'mirror' and 'backup' functionality > > as part of the same QMP command > > > > FWIW, this seems a bit more palatable, as it is unifying > > similar-functionality-that-differ-slightly into two distinct commands. [...] > Commit of the active layer is _already_ a mirror job internally (and not > a stream job). I see; didn't realize the above. I learn that it is the case so for a long time, and came in via the commit 20a63d2 ("commit: Support commit active layer"). For my own education, I went looking into qemu/block/mirror.c, and noticed the variable 'commit_active_job_driver' (of type BlockJobDriver), which is used in the function: commit_active_start(). Thanks for the pointer. > It's pretty clear to me that commit and mirror are almost > the same, backup is pretty similar. Stream is somewhat different and > might make more sense as a separate job type. Yep, understood. -- /kashyap