[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 12/16] block: Remove blk_pread_unthrottled()
From: |
Kevin Wolf |
Subject: |
[Qemu-devel] [PULL 12/16] block: Remove blk_pread_unthrottled() |
Date: |
Fri, 16 Aug 2019 11:34:35 +0200 |
The functionality offered by blk_pread_unthrottled() goes back to commit
498e386c584. Then, we couldn't perform I/O throttling with synchronous
requests because timers wouldn't be executed in polling loops. So the
commit automatically disabled I/O throttling as soon as a synchronous
request was issued.
However, for geometry detection during disk initialisation, we always
used (and still use) synchronous requests even if guest requests use AIO
later. Geometry detection was not wanted to disable I/O throttling, so
bdrv_pread_unthrottled() was introduced which disabled throttling only
temporarily.
All of this isn't necessary any more because we do run timers in polling
loop and even synchronous requests are now using coroutine
infrastructure internally. For this reason, commit 90c78624f already
removed the automatic disabling of I/O throttling.
It's time to get rid of the workaround for the removed code, and its
abuse of blk_root_drained_begin()/end(), as well.
Signed-off-by: Kevin Wolf <address@hidden>
Reviewed-by: Max Reitz <address@hidden>
---
include/sysemu/block-backend.h | 2 --
block/block-backend.c | 16 ----------------
hw/block/hd-geometry.c | 7 +------
3 files changed, 1 insertion(+), 24 deletions(-)
diff --git a/include/sysemu/block-backend.h b/include/sysemu/block-backend.h
index 733c4957eb..7320b58467 100644
--- a/include/sysemu/block-backend.h
+++ b/include/sysemu/block-backend.h
@@ -117,8 +117,6 @@ char *blk_get_attached_dev_id(BlockBackend *blk);
BlockBackend *blk_by_dev(void *dev);
BlockBackend *blk_by_qdev_id(const char *id, Error **errp);
void blk_set_dev_ops(BlockBackend *blk, const BlockDevOps *ops, void *opaque);
-int blk_pread_unthrottled(BlockBackend *blk, int64_t offset, uint8_t *buf,
- int bytes);
int coroutine_fn blk_co_preadv(BlockBackend *blk, int64_t offset,
unsigned int bytes, QEMUIOVector *qiov,
BdrvRequestFlags flags);
diff --git a/block/block-backend.c b/block/block-backend.c
index 0056b526b8..fdd6b01ecf 100644
--- a/block/block-backend.c
+++ b/block/block-backend.c
@@ -1237,22 +1237,6 @@ static int blk_prw(BlockBackend *blk, int64_t offset,
uint8_t *buf,
return rwco.ret;
}
-int blk_pread_unthrottled(BlockBackend *blk, int64_t offset, uint8_t *buf,
- int count)
-{
- int ret;
-
- ret = blk_check_byte_request(blk, offset, count);
- if (ret < 0) {
- return ret;
- }
-
- blk_root_drained_begin(blk->root);
- ret = blk_pread(blk, offset, buf, count);
- blk_root_drained_end(blk->root, NULL);
- return ret;
-}
-
int blk_pwrite_zeroes(BlockBackend *blk, int64_t offset,
int bytes, BdrvRequestFlags flags)
{
diff --git a/hw/block/hd-geometry.c b/hw/block/hd-geometry.c
index 79384a2b0a..dcbccee294 100644
--- a/hw/block/hd-geometry.c
+++ b/hw/block/hd-geometry.c
@@ -63,12 +63,7 @@ static int guess_disk_lchs(BlockBackend *blk,
blk_get_geometry(blk, &nb_sectors);
- /**
- * The function will be invoked during startup not only in sync I/O mode,
- * but also in async I/O mode. So the I/O throttling function has to
- * be disabled temporarily here, not permanently.
- */
- if (blk_pread_unthrottled(blk, 0, buf, BDRV_SECTOR_SIZE) < 0) {
+ if (blk_pread(blk, 0, buf, BDRV_SECTOR_SIZE) < 0) {
return -1;
}
/* test msdos magic */
--
2.20.1
- [Qemu-devel] [PULL 01/16] iotests/118: Test media change for scsi-cd, (continued)
- [Qemu-devel] [PULL 01/16] iotests/118: Test media change for scsi-cd, Kevin Wolf, 2019/08/16
- [Qemu-devel] [PULL 02/16] iotests/118: Create test classes dynamically, Kevin Wolf, 2019/08/16
- [Qemu-devel] [PULL 04/16] iotests: Move migration helpers to iotests.py, Kevin Wolf, 2019/08/16
- [Qemu-devel] [PULL 03/16] iotests/118: Add -blockdev based tests, Kevin Wolf, 2019/08/16
- [Qemu-devel] [PULL 06/16] block: Simplify bdrv_filter_default_perms(), Kevin Wolf, 2019/08/16
- [Qemu-devel] [PULL 08/16] block: Reduce (un)drains when replacing a child, Kevin Wolf, 2019/08/16
- [Qemu-devel] [PULL 07/16] block: Keep subtree drained in drop_intermediate, Kevin Wolf, 2019/08/16
- [Qemu-devel] [PULL 05/16] iotests: Test migration with all kinds of filter nodes, Kevin Wolf, 2019/08/16
- [Qemu-devel] [PULL 09/16] tests: Test polling in bdrv_drop_intermediate(), Kevin Wolf, 2019/08/16
- [Qemu-devel] [PULL 10/16] tests: Test mid-drain bdrv_replace_child_noperm(), Kevin Wolf, 2019/08/16
- [Qemu-devel] [PULL 12/16] block: Remove blk_pread_unthrottled(),
Kevin Wolf <=
- [Qemu-devel] [PULL 11/16] iotests: Add test for concurrent stream/commit, Kevin Wolf, 2019/08/16
- [Qemu-devel] [PULL 13/16] mirror: Keep mirror_top_bs drained after dropping permissions, Kevin Wolf, 2019/08/16
- [Qemu-devel] [PULL 15/16] qemu-img convert: Deprecate using -n and -o together, Kevin Wolf, 2019/08/16
- [Qemu-devel] [PULL 14/16] block-backend: Queue requests while drained, Kevin Wolf, 2019/08/16
- [Qemu-devel] [PULL 16/16] file-posix: Handle undetectable alignment, Kevin Wolf, 2019/08/16
- Re: [Qemu-devel] [PULL 00/16] Block layer patches, no-reply, 2019/08/16
- Re: [Qemu-devel] [PULL 00/16] Block layer patches, Peter Maydell, 2019/08/16