From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:33734) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QeACO-00007k-F2 for qemu-devel@nongnu.org; Tue, 05 Jul 2011 14:18:20 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1QeACM-00027N-Mj for qemu-devel@nongnu.org; Tue, 05 Jul 2011 14:18:16 -0400 Received: from mx1.redhat.com ([209.132.183.28]:46425) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QeACL-000276-Qi for qemu-devel@nongnu.org; Tue, 05 Jul 2011 14:18:14 -0400 From: Luiz Capitulino Date: Tue, 5 Jul 2011 15:17:43 -0300 Message-Id: <1309889871-6267-1-git-send-email-lcapitulino@redhat.com> Subject: [Qemu-devel] [PATCH v1 0/8]: QMP: Thin provisioning support List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: kwolf@redhat.com, jan.kiszka@siemens.com, armbru@redhat.com, stefanha@gmail.com, jdenemar@redhat.com 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. 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(-)