throttle: Add throttle group support
The throttle group support use a cooperative round robin scheduling algorithm. The principles of the algorithm are simple: - Each BDS of the group is used as a token in a circular way. - The active BDS computes if a wait must be done and arms the right timer. - If a wait must be done the token timer will be armed so the token will become the next active BDS. Signed-off-by:Alberto Garcia <berto@igalia.com> Reviewed-by:
Stefan Hajnoczi <stefanha@redhat.com> Message-id: f0082a86f3ac01c46170f7eafe2101a92e8fde39.1433779731.git.berto@igalia.com Signed-off-by:
Stefan Hajnoczi <stefanha@redhat.com>
Showing
- block.c 9 additions, 6 deletionsblock.c
- block/io.c 16 additions, 59 deletionsblock/io.c
- block/qapi.c 4 additions, 1 deletionblock/qapi.c
- block/throttle-groups.c 210 additions, 4 deletionsblock/throttle-groups.c
- blockdev.c 29 additions, 9 deletionsblockdev.c
- hmp.c 3 additions, 1 deletionhmp.c
- include/block/block.h 2 additions, 1 deletioninclude/block/block.h
- include/block/block_int.h 5 additions, 2 deletionsinclude/block/block_int.h
- include/block/throttle-groups.h 4 additions, 0 deletionsinclude/block/throttle-groups.h
- qapi/block-core.json 24 additions, 1 deletionqapi/block-core.json
- qemu-options.hx 1 addition, 0 deletionsqemu-options.hx
- qmp-commands.hx 2 additions, 1 deletionqmp-commands.hx
Loading
Please register or sign in to comment