On Wed, 28 Sep 2011 17:45:27 +0800 hkran <hk...@vnet.linux.ibm.com> wrote:
> On 09/27/2011 04:43 AM, Luiz Capitulino wrote: > > This series adds support to the block layer to keep track of devices' > > I/O status. That information is also made available in QMP and HMP. > > > > The goal here is to allow management applications that miss the > > BLOCK_IO_ERROR event to able to query the VM to determine if any device has > > caused the VM to stop and which device caused it. > > > > Here's an HMP example: > > > > (qemu) info status > > VM status: paused (io-error) > > (qemu) info block > > ide0-hd0: removable=0 io-status=ok file=disks/test2.img ro=0 drv=qcow2 > > encrypted=0 > > ide0-hd1: removable=0 io-status=nospace file=/dev/vg_doriath/kvmtest > > ro=0 drv=qcow2 encrypted=0 > > ide1-cd0: removable=1 locked=0 io-status=ok [not inserted] > > floppy0: removable=1 locked=0 [not inserted] > > sd0: removable=1 locked=0 [not inserted] > > > > The session above shows that the VM is stopped due to an I/O error. By using > > the info block command it's possible to determine that the 'ide0-hd1' device > > caused the error, which turns out to be due to no space. > > > > changelog > > --------- > > > > v3 > > > > o Introduce bdrv_iostatus_disable() > > o Also reset the I/O status on bdrv_attach_dev() > > o Fix bad assert() in bdrv_iostatus_enable() > > o Improve documentation > > > > v2 > > > > o Rebase against latest master > > o Renamed bdrv_iostatus_update() to bdrv_iostatus_set_err() > > o Minor changelog clarifications > > > > block.c | 57 > > +++++++++++++++++++++++++++++++++++++++++++++++++++++++ > > block.h | 10 +++++++++ > > block_int.h | 1 + > > hw/ide/core.c | 2 + > > hw/scsi-disk.c | 2 + > > hw/virtio-blk.c | 2 + > > monitor.c | 6 +++++ > > qmp-commands.hx | 6 +++++ > > 8 files changed, 86 insertions(+), 0 deletions(-) > > > Hi, > > How to reproduce a scenario in which the VM is stopped due to the I/O error? > I tried several times by copying data from one place to another place in > guest OS and finally the system prompted me that there is no space is > available, however it did not > cause any I/O error and not stop the VM either. I use the test-case described here: http://lists.gnu.org/archive/html/qemu-devel/2011-08/msg03800.html