[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[RFC PATCH v2 6/8] virtio-blk: pause I/O hang when resetting
From: |
Jiahui Cen |
Subject: |
[RFC PATCH v2 6/8] virtio-blk: pause I/O hang when resetting |
Date: |
Wed, 30 Sep 2020 17:46:04 +0800 |
When resetting virtio-blk, we have to drain all AIOs but do not care about the
results. So it is necessary to disable I/O hang before resetting virtio-blk,
and enable it after resetting.
Signed-off-by: Jiahui Cen <cenjiahui@huawei.com>
Signed-off-by: Ying Fang <fangying1@huawei.com>
---
hw/block/virtio-blk.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/hw/block/virtio-blk.c b/hw/block/virtio-blk.c
index bac2d6fa2b..f96e4ac274 100644
--- a/hw/block/virtio-blk.c
+++ b/hw/block/virtio-blk.c
@@ -899,6 +899,10 @@ static void virtio_blk_reset(VirtIODevice *vdev)
AioContext *ctx;
VirtIOBlockReq *req;
+ if (blk_iohang_is_enabled(s->blk)) {
+ blk_rehandle_pause(s->blk);
+ }
+
ctx = blk_get_aio_context(s->blk);
aio_context_acquire(ctx);
blk_drain(s->blk);
@@ -916,6 +920,10 @@ static void virtio_blk_reset(VirtIODevice *vdev)
assert(!s->dataplane_started);
blk_set_enable_write_cache(s->blk, s->original_wce);
+
+ if (blk_iohang_is_enabled(s->blk)) {
+ blk_rehandle_unpause(s->blk);
+ }
}
/* coalesce internal state, copy to pci i/o region 0
--
2.28.0
- [RFC PATCH v2 0/8] block-backend: Introduce I/O hang, Jiahui Cen, 2020/09/30
- [RFC PATCH v2 1/8] block-backend: introduce I/O rehandle info, Jiahui Cen, 2020/09/30
- [RFC PATCH v2 3/8] block-backend: add I/O hang timeout, Jiahui Cen, 2020/09/30
- [RFC PATCH v2 5/8] block-backend: enable I/O hang when timeout is set, Jiahui Cen, 2020/09/30
- [RFC PATCH v2 6/8] virtio-blk: pause I/O hang when resetting,
Jiahui Cen <=
- [RFC PATCH v2 2/8] block-backend: rehandle block aios when EIO, Jiahui Cen, 2020/09/30
- [RFC PATCH v2 4/8] block-backend: add I/O rehandle pause/unpause, Jiahui Cen, 2020/09/30
- [RFC PATCH v2 7/8] qemu-option: add I/O hang timeout option, Jiahui Cen, 2020/09/30
- [RFC PATCH v2 8/8] qapi: add I/O hang and I/O hang timeout qapi event, Jiahui Cen, 2020/09/30