On Thu, Jan 25, 2018 at 08:48:22AM -0600, Eric Blake wrote: > On 01/24/2018 10:59 PM, Liang Li wrote: > >> > >> There's ongoing work on adding async mirroring; this may be a better > >> solution to the issue you are seeing. > >> > >> https://lists.gnu.org/archive/html/qemu-devel/2018-01/msg05419.html > >> > > Hi Eric, > > > > Thinks for your information, I didn't know libvirt depends on > > 'block-job-cancel' > > for some of the block related operations. > > > > It's seems a new interface should provided by qemu for use case that just > > for aborting block job and don't care abort the mirror data integrality, and > > libvirt can make use of this new interface. > > > > Do you think this is the right direction? > > I don't know if it is better to wait for the new async mirroring code to > land, or to just propose a new QMP command that can force-quit an > ongoing mirror in the READY state, but you are correct that the only > safe way to do it is by adding a new command (or a new optional flag to > the existing block-job-cancel command). >
Active sync does not conflict with the new QMP command, no need to wait. The current QMP command is: { 'command': 'block-job-cancel', 'data': { 'device': 'str', '*force': 'bool' } } 'force' has other meaning which is not used by libvirt, for the change, there are 3 options: a. Now that 'force' is not used by libvirt and it current semantic is not very useful, we can change it's semantic to force-quit without syncing. b. change 'force' from bool to flag, and bit 0 is used for it's original meaning. c. add another bool parameter. which is the best one? Thanks! Liang > -- > Eric Blake, Principal Software Engineer > Red Hat, Inc. +1-919-301-3266 > Virtualization: qemu.org | libvirt.org >