[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 1/1] Revert "linux-aio: Cancel BH if not needed"
From: |
Roman Pen |
Subject: |
[Qemu-devel] [PATCH 1/1] Revert "linux-aio: Cancel BH if not needed" |
Date: |
Fri, 24 Jun 2016 15:40:08 +0200 |
This reverts commit ccb9dc10129954d0bcd7814298ed445e684d5a2a,
which causes MQ stuck while doing IO thru virtio_blk.
I reproduce very easily this stuck on recent v4 Stefan's set
using num-queues=4:
"[PATCH v4 0/7] virtio-blk: multiqueue support"
https://lists.gnu.org/archive/html/qemu-devel/2016-06/msg05999.html
Some debug output from guest:
-----------------------------
address@hidden ~]# cat /sys/block/vda/inflight
106 98
address@hidden ~]# cat /sys/block/vda/mq/*/tags
nr_tags=128, reserved_tags=0, bits_per_word=5
nr_free=89, nr_reserved=0
active_queues=0
nr_tags=128, reserved_tags=0, bits_per_word=5
nr_free=83, nr_reserved=0
active_queues=0
nr_tags=128, reserved_tags=0, bits_per_word=5
nr_free=31, nr_reserved=0
active_queues=0
nr_tags=128, reserved_tags=0, bits_per_word=5
nr_free=105, nr_reserved=0
active_queues=0
Fio configuration:
------------------
[global]
description=Emulation of Storage Server Access Pattern
bssplit=512/20:1k/16:2k/9:4k/12:8k/19:16k/10:32k/8:64k/4
fadvise_hint=0
rw=randrw:2
direct=1
ioengine=libaio
iodepth=64
iodepth_batch_submit=64
iodepth_batch_complete=64
numjobs=8
gtod_reduce=1
group_reporting=1
time_based=1
runtime=30
[job]
filename=/dev/vda
VM configuration:
-----------------
-object iothread,id=t0 \
-drive
if=none,id=d0,file=/dev/nullb0,format=raw,snapshot=off,cache=none,aio=native \
-device
virtio-blk-pci,drive=d0,iothread=t0,num-queues=4,disable-modern=off,disable-legacy=on
\
Signed-off-by: Roman Pen <address@hidden>
Cc: Kevin Wolf <address@hidden>
Cc: Paolo Bonzini <address@hidden>
Cc: Stefan Hajnoczi <address@hidden>
Cc: address@hidden
---
block/linux-aio.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/block/linux-aio.c b/block/linux-aio.c
index e468960..fe7cece 100644
--- a/block/linux-aio.c
+++ b/block/linux-aio.c
@@ -149,8 +149,6 @@ static void qemu_laio_completion_bh(void *opaque)
if (!s->io_q.plugged && !QSIMPLEQ_EMPTY(&s->io_q.pending)) {
ioq_submit(s);
}
-
- qemu_bh_cancel(s->completion_bh);
}
static void qemu_laio_completion_cb(EventNotifier *e)
@@ -158,7 +156,7 @@ static void qemu_laio_completion_cb(EventNotifier *e)
LinuxAioState *s = container_of(e, LinuxAioState, e);
if (event_notifier_test_and_clear(&s->e)) {
- qemu_laio_completion_bh(s);
+ qemu_bh_schedule(s->completion_bh);
}
}
--
2.8.2
- [Qemu-devel] [PATCH 1/1] Revert "linux-aio: Cancel BH if not needed",
Roman Pen <=