diff options
| author | Manos Pitsidianakis | 2017-08-25 15:20:24 +0200 |
|---|---|---|
| committer | Kevin Wolf | 2017-09-05 16:47:52 +0200 |
| commit | c61791fc23ecd96e6a1e038c379c4033ffd5f40c (patch) | |
| tree | 54226255fb34d61ce0dcfe2cf05724f3e2594c02 /include | |
| parent | block: move ThrottleGroup membership to ThrottleGroupMember (diff) | |
| download | qemu-c61791fc23ecd96e6a1e038c379c4033ffd5f40c.tar.gz qemu-c61791fc23ecd96e6a1e038c379c4033ffd5f40c.tar.xz qemu-c61791fc23ecd96e6a1e038c379c4033ffd5f40c.zip | |
block: add aio_context field in ThrottleGroupMember
timer_cb() needs to know about the current Aio context of the throttle
request that is woken up. In order to make ThrottleGroupMember backend
agnostic, this information is stored in an aio_context field instead of
accessing it from BlockBackend.
Reviewed-by: Alberto Garcia <berto@igalia.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Manos Pitsidianakis <el13635@mail.ntua.gr>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Diffstat (limited to 'include')
| -rw-r--r-- | include/block/throttle-groups.h | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/include/block/throttle-groups.h b/include/block/throttle-groups.h index 1a6bcdae74..a0f27cac63 100644 --- a/include/block/throttle-groups.h +++ b/include/block/throttle-groups.h @@ -33,6 +33,7 @@ */ typedef struct ThrottleGroupMember { + AioContext *aio_context; /* throttled_reqs_lock protects the CoQueues for throttled requests. */ CoMutex throttled_reqs_lock; CoQueue throttled_reqs[2]; @@ -61,12 +62,16 @@ void throttle_group_config(ThrottleGroupMember *tgm, ThrottleConfig *cfg); void throttle_group_get_config(ThrottleGroupMember *tgm, ThrottleConfig *cfg); void throttle_group_register_tgm(ThrottleGroupMember *tgm, - const char *groupname); + const char *groupname, + AioContext *ctx); void throttle_group_unregister_tgm(ThrottleGroupMember *tgm); void throttle_group_restart_tgm(ThrottleGroupMember *tgm); void coroutine_fn throttle_group_co_io_limits_intercept(ThrottleGroupMember *tgm, unsigned int bytes, bool is_write); +void throttle_group_attach_aio_context(ThrottleGroupMember *tgm, + AioContext *new_context); +void throttle_group_detach_aio_context(ThrottleGroupMember *tgm); #endif |
