On Tue, 5 Jul 2011 15:17:43 -0300 Luiz Capitulino <lcapitul...@redhat.com> wrote:
> Roughly speaking, thin provisioning is a feature where the VM is started with > a small storage and when a no space error is triggered, more space is > allocated > and the VM is put to run again. block guys ping? This series has some block layer changes which would be nice to get feedback from you. > > This series allows a management tool using QMP to implement thin provisioning > support. It does the following: > > 1. patches 1/8 and 2/8 extend the query-status command to contain a more > complete and descriptive status > > 2. patches 3/8 to 6/8 add support to the block layer to track the status of > the last executed I/O operation. This is supported by ide, virtio and scsi > devices > > 3. The last two patches extend the "query-block" and "info block" commands > to print the last I/O status field (this is per device) > > Basically, all a management tool has to do to implement thin provisioning is > to wait for a BLOCK_IO_ERROR event (or the STOP event), check the VM is > stopped by issuing query-status and then find which device failed by using > query-block. Of course that the VM has to be configured to stop on errors. > > A last important detail: Anthony has proposed how the query-status command > should be extended to support this[1]. However, I had to make the following > changes to his original proposal: > > - Added states: debug, inmigrate, load-state-error and internal-error > - Dropped: singlestep > > You'll find more details in the patches, thanks! > > [1] http://lists.nongnu.org/archive/html/qemu-devel/2011-06/msg00352.html > > block.c | 37 ++++++++++++++++++++++++++++++++++++- > block.h | 7 +++++++ > block_int.h | 2 ++ > gdbstub.c | 4 ++++ > hw/ide/core.c | 6 ++++++ > hw/scsi-disk.c | 7 +++++++ > hw/virtio-blk.c | 4 ++++ > hw/watchdog.c | 1 + > kvm-all.c | 1 + > migration.c | 3 +++ > monitor.c | 8 +++++--- > qmp-commands.hx | 23 ++++++++++++++++++++++- > sysemu.h | 19 +++++++++++++++++++ > vl.c | 37 +++++++++++++++++++++++++++++++++++++ > 14 files changed, 154 insertions(+), 5 deletions(-) >