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.