block/io: optimize bdrv_co_pwritev for small requests
in a read-modify-write cycle a small request might cause
head and tail to fall into the same aligned block. Currently
QEMU reads the same block twice in this case which is
not necessary.
Signed-off-by: Peter Lieven <pl@kamp.de>
Message-id: 1464607873-28206-1-git-send-email-pl@kamp.de
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
diff --git a/tests/qemu-iotests/077 b/tests/qemu-iotests/077
index 4dc680b..d2d2a2d 100755
--- a/tests/qemu-iotests/077
+++ b/tests/qemu-iotests/077
@@ -60,7 +60,7 @@
# Sequential RMW requests on the same physical sector
off=0x1000
-for ev in "head" "after_head" "tail" "after_tail"; do
+for ev in "head" "after_head"; do
cat <<EOF
break pwritev_rmw_$ev A
aio_write -P 10 $((off + 0x200)) 0x200
@@ -211,16 +211,6 @@
echo read -P 11 0x2400 0x200
echo read -P 0 0x2600 0xa00
- echo read -P 0 0x3000 0x200
- echo read -P 10 0x3200 0x200
- echo read -P 11 0x3400 0x200
- echo read -P 0 0x3600 0xa00
-
- echo read -P 0 0x4000 0x200
- echo read -P 10 0x4200 0x200
- echo read -P 11 0x4400 0x200
- echo read -P 0 0x4600 0xa00
-
# Chained dependencies
echo read -P 10 0x5000 0x200
echo read -P 11 0x5200 0x200