All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] Making QMP 'block-job-cancel' transactionable
@ 2017-03-24 12:34 Kashyap Chamarthy
  2017-03-28 14:49 ` Eric Blake
  2017-04-03 20:29 ` John Snow
  0 siblings, 2 replies; 16+ messages in thread
From: Kashyap Chamarthy @ 2017-03-24 12:34 UTC (permalink / raw)
  To: qemu-devel; +Cc: qemu-block, eblake

While debugging some other issue, I happened to stumble across an old
libvirt commit[*] that adds support for pivot (whether QEMU should
switch to a target copy or not) operation as a result of issuing QMP
'block-job-cancel' to a 'drive-mirror' (in libvirt parlance, "block
copy").

In the libvirt commit message[*] Eric Blake writes:

    "[...] There may be potential improvements to the snapshot code to
    exploit block copy over multiple disks all at one point in time.
    And, if 'block-job-cancel' were made part of 'transaction', you
    could copy multiple disks at the same point in time without pausing
    the domain. [...]"

I realize that 'block-job-cancel' is currently not part of the
@TransactionAction.  Is it worthwhile to do so?

Given the current behavior of QMP 'drive-mirror':

  - Upon 'block-job-complete', synchronization will end, and live QEMU
    pivots to the target (i.e. the copy)

  - Upon 'block-job-cancel', a point-in-time (at the time of cancel)
    copy gets created, and live QEMU will _not_ pivot.

I realize that it is not possible to perform a "block copy" of multiple
disks at the same point in time without pausing QEMU.  From a brief chat
with Stefan Hajnoczi on IRC, he does confirm that there's no current API
for doing it atomically across multiple disks.

Since Stefan asked if a bug exists for adding 'transaction' support to
'block-job-cancel', thought I might bring it up here first.


[*] https://libvirt.org/git/?p=libvirt.git;a=commit;h=eaba79d --
    blockjob: support pivot operation on cancel

-- 
/kashyap

^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2017-04-12  9:12 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-03-24 12:34 [Qemu-devel] Making QMP 'block-job-cancel' transactionable Kashyap Chamarthy
2017-03-28 14:49 ` Eric Blake
2017-03-28 15:29   ` Kashyap Chamarthy
2017-04-03 14:38     ` [Qemu-devel] [Qemu-block] " Stefan Hajnoczi
2017-04-03 20:29 ` John Snow
2017-04-03 20:38   ` Eric Blake
2017-04-04 13:28     ` Kashyap Chamarthy
2017-04-04 13:54       ` Eric Blake
2017-04-11  9:42         ` Markus Armbruster
2017-04-11 10:30           ` Kashyap Chamarthy
2017-04-11 12:05   ` Kevin Wolf
2017-04-11 13:14     ` Eric Blake
2017-04-11 13:30       ` Kevin Wolf
2017-04-12  8:42         ` Fam Zheng
2017-04-12  8:59           ` Kevin Wolf
2017-04-12  9:12             ` Fam Zheng

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.