mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-07-31 14:23:53 -06:00
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>
This commit is contained in:
parent
022cdc9f40
commit
c61791fc23
4 changed files with 69 additions and 54 deletions
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue