On 25.07.19 18:27, Kevin Wolf wrote: > 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 <kw...@redhat.com> > --- > include/sysemu/block-backend.h | 2 -- > block/block-backend.c | 16 ---------------- > hw/block/hd-geometry.c | 7 +------ > 3 files changed, 1 insertion(+), 24 deletions(-)
It took me a bit of git blaming to find out more about the history of timer execution (and finally arrived at https://lists.nongnu.org/archive/html/qemu-devel/2013-08/msg03060.html), but now I’m reasonably confident. Reviewed-by: Max Reitz <mre...@redhat.com>
signature.asc
Description: OpenPGP digital signature