From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:57700) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1diXgw-0000tL-Mm for qemu-devel@nongnu.org; Thu, 17 Aug 2017 23:11:23 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1diXgv-0000Dr-RN for qemu-devel@nongnu.org; Thu, 17 Aug 2017 23:11:22 -0400 From: Manos Pitsidianakis Date: Fri, 18 Aug 2017 06:10:13 +0300 Message-Id: <20170818031019.3723-1-el13635@mail.ntua.gr> Subject: [Qemu-devel] [PATCH v5 0/6] add throttle block driver filter List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel Cc: qemu-block , Alberto Garcia , Stefan Hajnoczi , Kevin Wolf This series adds a throttle block driver filter. Currently throttling is done at the BlockBackend level. Using block driver interfaces we can move the throttling to any point in the BDS graph using a throttle node which uses the existing throttling code. This allows for potentially more complex configurations (throttling at any point in the graph, chained filters) v5: fix crash in 'add aio_context field in ThrottleGroupMember' fix suggestions in block/throttle.c v4: fix suggestions in block/throttle.c fix suggestions in block/throttle_groups.c add doc note in BlockDevOptionsThrottle v3: fix style error in 'add aio_context field in ThrottleGroupMember' v2: change QOM throttle group object name print valid ranges for uint on error move frees in throttle_group_obj_finalize() split throttle_group_{set,get}() add throttle_recurse_is_first_non_filter() Manos Pitsidianakis (6): block: move ThrottleGroup membership to ThrottleGroupMember block: add aio_context field in ThrottleGroupMember block: tidy ThrottleGroupMember initializations block: convert ThrottleGroup to object with QOM block: add throttle block filter driver block: add iotest 184 for the throttle filter driver qapi/block-core.json | 70 +++- include/block/throttle-groups.h | 47 ++- include/qemu/throttle-options.h | 60 ++-- include/qemu/throttle.h | 3 + include/sysemu/block-backend.h | 20 +- block/block-backend.c | 62 ++-- block/qapi.c | 8 +- block/throttle-groups.c | 734 +++++++++++++++++++++++++++++----------- block/throttle.c | 314 +++++++++++++++++ blockdev.c | 4 +- tests/test-throttle.c | 111 +++--- util/throttle.c | 151 +++++++++ block/Makefile.objs | 1 + tests/qemu-iotests/184 | 310 +++++++++++++++++ tests/qemu-iotests/184.out | 422 +++++++++++++++++++++++ tests/qemu-iotests/group | 1 + 16 files changed, 1997 insertions(+), 321 deletions(-) create mode 100644 block/throttle.c create mode 100755 tests/qemu-iotests/184 create mode 100644 tests/qemu-iotests/184.out -- 2.11.0