[Qemu-devel] [PATCH v2 0/7] add throttle block driver filter

Manos Pitsidianakis posted 7 patches 6 years, 8 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20170726171444.32218-1-el13635@mail.ntua.gr
Test FreeBSD passed
Test checkpatch failed
Test s390x passed
There is a newer version of this series
block/Makefile.objs             |   1 +
block/block-backend.c           |  61 ++--
block/qapi.c                    |   8 +-
block/throttle-groups.c         | 715 ++++++++++++++++++++++++++++++----------
block/throttle.c                | 395 ++++++++++++++++++++++
blockdev.c                      |   4 +-
include/block/throttle-groups.h |  47 ++-
include/qemu/throttle-options.h |  60 ++--
include/qemu/throttle.h         |   3 +
include/sysemu/block-backend.h  |  20 +-
qapi/block-core.json            |  68 +++-
tests/qemu-iotests/184          | 237 +++++++++++++
tests/qemu-iotests/184.out      | 319 ++++++++++++++++++
tests/qemu-iotests/group        |   1 +
tests/test-throttle.c           | 111 ++++---
util/throttle.c                 | 151 +++++++++
16 files changed, 1891 insertions(+), 310 deletions(-)
create mode 100644 block/throttle.c
create mode 100755 tests/qemu-iotests/184
create mode 100644 tests/qemu-iotests/184.out
[Qemu-devel] [PATCH v2 0/7] add throttle block driver filter
Posted by Manos Pitsidianakis 6 years, 8 months ago
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)

There's also the question of how filter drivers affect the rest of the block
layer, especially live block jobs. This won't be tackled in this series though.

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 (7):
  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 BlockDevOptionsThrottle to QAPI
  block: add throttle block filter driver interface tests

 block/Makefile.objs             |   1 +
 block/block-backend.c           |  61 ++--
 block/qapi.c                    |   8 +-
 block/throttle-groups.c         | 715 ++++++++++++++++++++++++++++++----------
 block/throttle.c                | 395 ++++++++++++++++++++++
 blockdev.c                      |   4 +-
 include/block/throttle-groups.h |  47 ++-
 include/qemu/throttle-options.h |  60 ++--
 include/qemu/throttle.h         |   3 +
 include/sysemu/block-backend.h  |  20 +-
 qapi/block-core.json            |  68 +++-
 tests/qemu-iotests/184          | 237 +++++++++++++
 tests/qemu-iotests/184.out      | 319 ++++++++++++++++++
 tests/qemu-iotests/group        |   1 +
 tests/test-throttle.c           | 111 ++++---
 util/throttle.c                 | 151 +++++++++
 16 files changed, 1891 insertions(+), 310 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


Re: [Qemu-devel] [PATCH v2 0/7] add throttle block driver filter
Posted by no-reply@patchew.org 6 years, 8 months ago
Hi,

This series seems to have some coding style problems. See output below for
more information:

Type: series
Subject: [Qemu-devel] [PATCH v2 0/7] add throttle block driver filter
Message-id: 20170726171444.32218-1-el13635@mail.ntua.gr

=== TEST SCRIPT BEGIN ===
#!/bin/bash

BASE=base
n=1
total=$(git log --oneline $BASE.. | wc -l)
failed=0

git config --local diff.renamelimit 0
git config --local diff.renames True

commits="$(git log --format=%H --reverse $BASE..)"
for c in $commits; do
    echo "Checking PATCH $n/$total: $(git log -n 1 --format=%s $c)..."
    if ! git show $c --format=email | ./scripts/checkpatch.pl --mailback -; then
        failed=1
        echo
    fi
    n=$((n+1))
done

exit $failed
=== TEST SCRIPT END ===

Updating 3c8cf5a9c21ff8782164d1def7f44bd888713384
Switched to a new branch 'test'
4ff41cf block: add throttle block filter driver interface tests
ccf2294 block: add BlockDevOptionsThrottle to QAPI
c00da39 block: add throttle block filter driver
c216db8 block: convert ThrottleGroup to object with QOM
92e1316 block: tidy ThrottleGroupMember initializations
a3f8bf3 block: add aio_context field in ThrottleGroupMember
88f37da block: move ThrottleGroup membership to ThrottleGroupMember

=== OUTPUT BEGIN ===
Checking PATCH 1/7: block: move ThrottleGroup membership to ThrottleGroupMember...
WARNING: line over 80 characters
#79: FILE: block/block-backend.c:992:
+        throttle_group_co_io_limits_intercept(&blk->public.throttle_group_member,

WARNING: line over 80 characters
#93: FILE: block/block-backend.c:1018:
+        throttle_group_co_io_limits_intercept(&blk->public.throttle_group_member,

WARNING: line over 80 characters
#169: FILE: block/block-backend.c:1966:
+    if (atomic_fetch_inc(&blk->public.throttle_group_member.io_limits_disabled) == 0) {

WARNING: line over 80 characters
#444: FILE: block/throttle-groups.c:274:
+static bool coroutine_fn throttle_group_co_restart_queue(ThrottleGroupMember *tgm,

WARNING: line over 80 characters
#513: FILE: block/throttle-groups.c:333:
+void coroutine_fn throttle_group_co_io_limits_intercept(ThrottleGroupMember *tgm,

WARNING: line over 80 characters
#593: FILE: block/throttle-groups.c:392:
+static void throttle_group_restart_queue(ThrottleGroupMember *tgm, bool is_write)

WARNING: line over 80 characters
#868: FILE: include/block/throttle-groups.h:68:
+void coroutine_fn throttle_group_co_io_limits_intercept(ThrottleGroupMember *tgm,

total: 0 errors, 7 warnings, 918 lines checked

Your patch has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
Checking PATCH 2/7: block: add aio_context field in ThrottleGroupMember...
ERROR: line over 90 characters
#47: FILE: block/block-backend.c:1930:
+    throttle_group_register_tgm(&blk->public.throttle_group_member, group, blk_get_aio_context(blk));

total: 1 errors, 0 warnings, 302 lines checked

Your patch has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.

Checking PATCH 3/7: block: tidy ThrottleGroupMember initializations...
Checking PATCH 4/7: block: convert ThrottleGroup to object with QOM...
WARNING: line over 80 characters
#534: FILE: include/block/throttle-groups.h:57:
+#define THROTTLE_GROUP(obj) OBJECT_CHECK(ThrottleGroup, (obj), TYPE_THROTTLE_GROUP)

WARNING: line over 80 characters
#675: FILE: include/qemu/throttle.h:157:
+void throttle_config_to_throttle_limits(ThrottleConfig *cfg, ThrottleLimits *var);

WARNING: line over 80 characters
#811: FILE: util/throttle.c:559:
+        cfg->buckets[THROTTLE_BPS_TOTAL].burst_length = arg->bps_total_max_length;

WARNING: line over 80 characters
#827: FILE: util/throttle.c:575:
+        cfg->buckets[THROTTLE_BPS_WRITE].burst_length = arg->bps_write_max_length;

WARNING: line over 80 characters
#835: FILE: util/throttle.c:583:
+        cfg->buckets[THROTTLE_OPS_TOTAL].burst_length = arg->iops_total_max_length;

WARNING: line over 80 characters
#843: FILE: util/throttle.c:591:
+        cfg->buckets[THROTTLE_OPS_READ].burst_length = arg->iops_read_max_length;

WARNING: line over 80 characters
#851: FILE: util/throttle.c:599:
+        cfg->buckets[THROTTLE_OPS_WRITE].burst_length = arg->iops_write_max_length;

WARNING: line over 80 characters
#866: FILE: util/throttle.c:614:
+void throttle_config_to_throttle_limits(ThrottleConfig *cfg, ThrottleLimits *var)

WARNING: line over 80 characters
#880: FILE: util/throttle.c:628:
+    var->bps_total_max_length    = cfg->buckets[THROTTLE_BPS_TOTAL].burst_length;

WARNING: line over 80 characters
#882: FILE: util/throttle.c:630:
+    var->bps_write_max_length    = cfg->buckets[THROTTLE_BPS_WRITE].burst_length;

WARNING: line over 80 characters
#883: FILE: util/throttle.c:631:
+    var->iops_total_max_length   = cfg->buckets[THROTTLE_OPS_TOTAL].burst_length;

WARNING: line over 80 characters
#885: FILE: util/throttle.c:633:
+    var->iops_write_max_length   = cfg->buckets[THROTTLE_OPS_WRITE].burst_length;

total: 0 errors, 12 warnings, 810 lines checked

Your patch has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
Checking PATCH 5/7: block: add throttle block filter driver...
WARNING: line over 80 characters
#183: FILE: block/throttle.c:143:
+    if (qemu_opt_get(opts, THROTTLE_OPT_PREFIX QEMU_OPT_IOPS_TOTAL_MAX_LENGTH)) {

WARNING: line over 80 characters
#207: FILE: block/throttle.c:167:
+    if (qemu_opt_get(opts, THROTTLE_OPT_PREFIX QEMU_OPT_IOPS_WRITE_MAX_LENGTH)) {

WARNING: line over 80 characters
#418: FILE: block/throttle.c:378:
+    .bdrv_recurse_is_first_non_filter   =   throttle_recurse_is_first_non_filter,

total: 0 errors, 3 warnings, 409 lines checked

Your patch has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
Checking PATCH 6/7: block: add BlockDevOptionsThrottle to QAPI...
Checking PATCH 7/7: block: add throttle block filter driver interface tests...
=== OUTPUT END ===

Test command exited with code: 1


---
Email generated automatically by Patchew [http://patchew.org/].
Please send your feedback to patchew-devel@freelists.org