• Stefan Hajnoczi's avatar
    throttle: add throttle_detach/attach_aio_context() · 13af91eb
    Stefan Hajnoczi authored
    Block I/O throttling uses timers and currently always adds them to the
    main loop.  Throttling will break if bdrv_set_aio_context() is used to
    move a BlockDriverState to a different AioContext.
    
    This patch adds throttle_detach/attach_aio_context() interfaces so the
    throttling timers and uses them to move timers to the new AioContext.
    Note that bdrv_set_aio_context() already drains all requests so we're
    sure no throttled requests are pending.
    
    The test cases need to be updated since the throttle_init() interface
    has changed.
    Signed-off-by: default avatarStefan Hajnoczi <stefanha@redhat.com>
    Reviewed-by: default avatarBenoit Canet <benoit@irqsave.net>
    13af91eb
throttle.h 3.71 KB