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: Stefan Hajnoczi <stefanha@redhat.com> Reviewed-by: Benoit Canet <benoit@irqsave.net> |
||
|---|---|---|
| .. | ||
| acl.h | ||
| aes.h | ||
| atomic.h | ||
| bitmap.h | ||
| bitops.h | ||
| bswap.h | ||
| cache-utils.h | ||
| compatfd.h | ||
| compiler.h | ||
| config-file.h | ||
| crc32c.h | ||
| envlist.h | ||
| error-report.h | ||
| event_notifier.h | ||
| fifo8.h | ||
| hbitmap.h | ||
| host-utils.h | ||
| int128.h | ||
| iov.h | ||
| log.h | ||
| main-loop.h | ||
| module.h | ||
| notify.h | ||
| option.h | ||
| option_int.h | ||
| osdep.h | ||
| queue.h | ||
| range.h | ||
| ratelimit.h | ||
| readline.h | ||
| rfifolock.h | ||
| seqlock.h | ||
| sockets.h | ||
| thread-posix.h | ||
| thread-win32.h | ||
| thread.h | ||
| throttle.h | ||
| timer.h | ||
| tls.h | ||
| typedefs.h | ||
| uri.h | ||
| xattr.h | ||