qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH v3 0/9] block: generic image streaming
@ 2011-12-13 13:52 Stefan Hajnoczi
  2011-12-13 13:52 ` [Qemu-devel] [PATCH v3 1/9] coroutine: add co_sleep_ns() coroutine sleep function Stefan Hajnoczi
                   ` (9 more replies)
  0 siblings, 10 replies; 46+ messages in thread
From: Stefan Hajnoczi @ 2011-12-13 13:52 UTC (permalink / raw)
  To: qemu-devel; +Cc: Kevin Wolf, Marcelo Tosatti, Stefan Hajnoczi, Luiz Capitulino

This series adds the 'block_stream' command which copies the contents of a
backing file into the image file while the VM is running.  The series builds on
copy-on-read and zero detection features which I sent out recently and I
suggest grabbing my git tree to try it out without merging these dependencies
yourself:

http://repo.or.cz/w/qemu/stefanha.git/shortlog/refs/heads/image-streaming-api

The image streaming HMP/QMP commands are documented in the patch and also
described here:

http://wiki.qemu.org/Features/LiveBlockMigration/ImageStreamingAPI

The basic idea is to execute 'block_stream virtio0' while the guest is running.
Progress can be monitored using 'info block-jobs'.  When the streaming
operation completes it raises a QMP event.

Note: The last patch includes includes a Python test script called
test-stream.py, I do not propose to merge it.  When run in a QEMU source tree
it performs basic image streaming QMP tests.

Stefan Hajnoczi (9):
  coroutine: add co_sleep_ns() coroutine sleep function
  block: add BlockJob interface for long-running operations
  block: add image streaming block job
  block: rate-limit streaming operations
  qmp: add block_stream command
  qmp: add block_job_set_speed command
  qmp: add block_job_cancel command
  qmp: add query-block-jobs
  test: add image streaming test cases

 Makefile.objs          |    3 +-
 block/stream.c         |  174 ++++++++++++++++++++++++++++++++++++++++
 block_int.h            |   86 ++++++++++++++++++++
 blockdev.c             |  143 +++++++++++++++++++++++++++++++++
 hmp-commands.hx        |   41 ++++++++++
 hmp.c                  |   81 +++++++++++++++++++
 hmp.h                  |    4 +
 monitor.c              |   13 +++
 monitor.h              |    2 +
 qapi-schema.json       |  144 +++++++++++++++++++++++++++++++++
 qemu-coroutine-sleep.c |   38 +++++++++
 qemu-coroutine.h       |    6 ++
 qerror.c               |    4 +
 qerror.h               |    3 +
 qmp-commands.hx        |   93 +++++++++++++++++++++
 test-stream.py         |  208 ++++++++++++++++++++++++++++++++++++++++++++++++
 trace-events           |    9 ++
 17 files changed, 1051 insertions(+), 1 deletions(-)
 create mode 100644 block/stream.c
 create mode 100644 qemu-coroutine-sleep.c
 create mode 100644 test-stream.py

-- 
1.7.7.3

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

end of thread, other threads:[~2012-01-11  1:41 UTC | newest]

Thread overview: 46+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-12-13 13:52 [Qemu-devel] [PATCH v3 0/9] block: generic image streaming Stefan Hajnoczi
2011-12-13 13:52 ` [Qemu-devel] [PATCH v3 1/9] coroutine: add co_sleep_ns() coroutine sleep function Stefan Hajnoczi
2011-12-13 13:52 ` [Qemu-devel] [PATCH v3 2/9] block: add BlockJob interface for long-running operations Stefan Hajnoczi
2011-12-14 13:51   ` Kevin Wolf
2011-12-15  8:50     ` Stefan Hajnoczi
2011-12-15 10:40     ` Marcelo Tosatti
2011-12-16  8:09       ` Stefan Hajnoczi
2011-12-13 13:52 ` [Qemu-devel] [PATCH v3 3/9] block: add image streaming block job Stefan Hajnoczi
2011-12-13 14:14   ` Marcelo Tosatti
2011-12-13 15:18     ` Stefan Hajnoczi
2011-12-14 13:59   ` Kevin Wolf
2011-12-13 13:52 ` [Qemu-devel] [PATCH v3 4/9] block: rate-limit streaming operations Stefan Hajnoczi
2011-12-13 13:52 ` [Qemu-devel] [PATCH v3 5/9] qmp: add block_stream command Stefan Hajnoczi
2012-01-04 12:59   ` Luiz Capitulino
2012-01-04 13:11     ` Luiz Capitulino
2012-01-05 13:48     ` Stefan Hajnoczi
2012-01-05 14:16       ` [Qemu-devel] QMP: Supporting off tree APIs Luiz Capitulino
2012-01-05 15:35         ` [Qemu-devel] [libvirt] " Eric Blake
2012-01-05 15:56           ` Anthony Liguori
2012-01-05 20:26             ` Luiz Capitulino
2012-01-06 11:06               ` Stefan Hajnoczi
2012-01-06 12:45                 ` Luiz Capitulino
2012-01-06 15:08                   ` Anthony Liguori
2012-01-06 19:42                     ` Luiz Capitulino
2012-01-10 19:18                       ` Anthony Liguori
2012-01-10 20:55                         ` Luiz Capitulino
2012-01-10 21:02                           ` Anthony Liguori
2012-01-11  1:41                             ` Luiz Capitulino
2012-01-05 14:20       ` [Qemu-devel] [PATCH v3 5/9] qmp: add block_stream command Stefan Hajnoczi
2011-12-13 13:52 ` [Qemu-devel] [PATCH v3 6/9] qmp: add block_job_set_speed command Stefan Hajnoczi
2011-12-13 13:52 ` [Qemu-devel] [PATCH v3 7/9] qmp: add block_job_cancel command Stefan Hajnoczi
2011-12-13 13:52 ` [Qemu-devel] [PATCH v3 8/9] qmp: add query-block-jobs Stefan Hajnoczi
2011-12-14 14:54   ` Kevin Wolf
2011-12-15  8:27     ` Stefan Hajnoczi
2011-12-15 10:34       ` Kevin Wolf
2011-12-15 11:30         ` Luiz Capitulino
2011-12-15 12:00           ` Stefan Hajnoczi
2011-12-15 12:09             ` Luiz Capitulino
2011-12-15 12:37             ` Kevin Wolf
2011-12-15 12:51               ` Stefan Hajnoczi
2012-01-04 13:17             ` Luiz Capitulino
2011-12-13 13:52 ` [Qemu-devel] [PATCH v3 9/9] test: add image streaming test cases Stefan Hajnoczi
2011-12-13 14:12 ` [Qemu-devel] [PATCH v3 0/9] block: generic image streaming Yibin Shen
2011-12-13 15:18   ` Stefan Hajnoczi
2011-12-14  1:42     ` Yibin Shen
2011-12-14 10:50       ` Stefan Hajnoczi

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).