From b8d497e4931eeca7c6109cd4fac19a0b0aac871a Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Sun, 8 Feb 2015 07:47:48 -0800 Subject: [PATCH] crushtool: add test for crushtool ordering Signed-off-by: Sage Weil --- src/test/cli/crushtool/arg-order-checks.t | 731 ++++++++++++++++++++++ 1 file changed, 731 insertions(+) create mode 100644 src/test/cli/crushtool/arg-order-checks.t diff --git a/src/test/cli/crushtool/arg-order-checks.t b/src/test/cli/crushtool/arg-order-checks.t new file mode 100644 index 0000000000000..787bb53bc5134 --- /dev/null +++ b/src/test/cli/crushtool/arg-order-checks.t @@ -0,0 +1,731 @@ +# tunables before decompile + $ crushtool -d "$TESTDIR/simple.template" --set-straw-calc-version 1 | head -2 + # begin crush map + tunable straw_calc_version 1 +# build then reweight-item then tree + $ map="$TESTDIR/foo" + $ crushtool --outfn "$map" --build --num_osds 25 node straw 5 rack straw 1 root straw 0 --reweight-item osd.2 99 -o "$map" --tree + crushtool reweighting item osd.2 to 99 + ID\tWEIGHT\tTYPE NAME (esc) + -11\t123.00000\troot root (esc) + -6\t103.00000\t\track rack0 (esc) + -1\t103.00000\t\t\tnode node0 (esc) + 0\t1.00000\t\t\t\tosd.0 (esc) + 1\t1.00000\t\t\t\tosd.1 (esc) + 2\t99.00000\t\t\t\tosd.2 (esc) + 3\t1.00000\t\t\t\tosd.3 (esc) + 4\t1.00000\t\t\t\tosd.4 (esc) + -7\t5.00000\t\track rack1 (esc) + -2\t5.00000\t\t\tnode node1 (esc) + 5\t1.00000\t\t\t\tosd.5 (esc) + 6\t1.00000\t\t\t\tosd.6 (esc) + 7\t1.00000\t\t\t\tosd.7 (esc) + 8\t1.00000\t\t\t\tosd.8 (esc) + 9\t1.00000\t\t\t\tosd.9 (esc) + -8\t5.00000\t\track rack2 (esc) + -3\t5.00000\t\t\tnode node2 (esc) + 10\t1.00000\t\t\t\tosd.10 (esc) + 11\t1.00000\t\t\t\tosd.11 (esc) + 12\t1.00000\t\t\t\tosd.12 (esc) + 13\t1.00000\t\t\t\tosd.13 (esc) + 14\t1.00000\t\t\t\tosd.14 (esc) + -9\t5.00000\t\track rack3 (esc) + -4\t5.00000\t\t\tnode node3 (esc) + 15\t1.00000\t\t\t\tosd.15 (esc) + 16\t1.00000\t\t\t\tosd.16 (esc) + 17\t1.00000\t\t\t\tosd.17 (esc) + 18\t1.00000\t\t\t\tosd.18 (esc) + 19\t1.00000\t\t\t\tosd.19 (esc) + -10\t5.00000\t\track rack4 (esc) + -5\t5.00000\t\t\tnode node4 (esc) + 20\t1.00000\t\t\t\tosd.20 (esc) + 21\t1.00000\t\t\t\tosd.21 (esc) + 22\t1.00000\t\t\t\tosd.22 (esc) + 23\t1.00000\t\t\t\tosd.23 (esc) + 24\t1.00000\t\t\t\tosd.24 (esc) + $ crushtool -d "$map" + # begin crush map + tunable choose_local_tries 0 + tunable choose_local_fallback_tries 0 + tunable choose_total_tries 50 + tunable chooseleaf_descend_once 1 + tunable straw_calc_version 1 + + # devices + device 0 osd.0 + device 1 osd.1 + device 2 osd.2 + device 3 osd.3 + device 4 osd.4 + device 5 osd.5 + device 6 osd.6 + device 7 osd.7 + device 8 osd.8 + device 9 osd.9 + device 10 osd.10 + device 11 osd.11 + device 12 osd.12 + device 13 osd.13 + device 14 osd.14 + device 15 osd.15 + device 16 osd.16 + device 17 osd.17 + device 18 osd.18 + device 19 osd.19 + device 20 osd.20 + device 21 osd.21 + device 22 osd.22 + device 23 osd.23 + device 24 osd.24 + + # types + type 0 device + type 1 node + type 2 rack + type 3 root + + # buckets + node node0 { + \tid -1\t\t# do not change unnecessarily (esc) + \t# weight 103.000 (esc) + \talg straw (esc) + \thash 0\t# rjenkins1 (esc) + \titem osd.0 weight 1.000 (esc) + \titem osd.1 weight 1.000 (esc) + \titem osd.2 weight 99.000 (esc) + \titem osd.3 weight 1.000 (esc) + \titem osd.4 weight 1.000 (esc) + } + node node1 { + \tid -2\t\t# do not change unnecessarily (esc) + \t# weight 5.000 (esc) + \talg straw (esc) + \thash 0\t# rjenkins1 (esc) + \titem osd.5 weight 1.000 (esc) + \titem osd.6 weight 1.000 (esc) + \titem osd.7 weight 1.000 (esc) + \titem osd.8 weight 1.000 (esc) + \titem osd.9 weight 1.000 (esc) + } + node node2 { + \tid -3\t\t# do not change unnecessarily (esc) + \t# weight 5.000 (esc) + \talg straw (esc) + \thash 0\t# rjenkins1 (esc) + \titem osd.10 weight 1.000 (esc) + \titem osd.11 weight 1.000 (esc) + \titem osd.12 weight 1.000 (esc) + \titem osd.13 weight 1.000 (esc) + \titem osd.14 weight 1.000 (esc) + } + node node3 { + \tid -4\t\t# do not change unnecessarily (esc) + \t# weight 5.000 (esc) + \talg straw (esc) + \thash 0\t# rjenkins1 (esc) + \titem osd.15 weight 1.000 (esc) + \titem osd.16 weight 1.000 (esc) + \titem osd.17 weight 1.000 (esc) + \titem osd.18 weight 1.000 (esc) + \titem osd.19 weight 1.000 (esc) + } + node node4 { + \tid -5\t\t# do not change unnecessarily (esc) + \t# weight 5.000 (esc) + \talg straw (esc) + \thash 0\t# rjenkins1 (esc) + \titem osd.20 weight 1.000 (esc) + \titem osd.21 weight 1.000 (esc) + \titem osd.22 weight 1.000 (esc) + \titem osd.23 weight 1.000 (esc) + \titem osd.24 weight 1.000 (esc) + } + rack rack0 { + \tid -6\t\t# do not change unnecessarily (esc) + \t# weight 103.000 (esc) + \talg straw (esc) + \thash 0\t# rjenkins1 (esc) + \titem node0 weight 103.000 (esc) + } + rack rack1 { + \tid -7\t\t# do not change unnecessarily (esc) + \t# weight 5.000 (esc) + \talg straw (esc) + \thash 0\t# rjenkins1 (esc) + \titem node1 weight 5.000 (esc) + } + rack rack2 { + \tid -8\t\t# do not change unnecessarily (esc) + \t# weight 5.000 (esc) + \talg straw (esc) + \thash 0\t# rjenkins1 (esc) + \titem node2 weight 5.000 (esc) + } + rack rack3 { + \tid -9\t\t# do not change unnecessarily (esc) + \t# weight 5.000 (esc) + \talg straw (esc) + \thash 0\t# rjenkins1 (esc) + \titem node3 weight 5.000 (esc) + } + rack rack4 { + \tid -10\t\t# do not change unnecessarily (esc) + \t# weight 5.000 (esc) + \talg straw (esc) + \thash 0\t# rjenkins1 (esc) + \titem node4 weight 5.000 (esc) + } + root root { + \tid -11\t\t# do not change unnecessarily (esc) + \t# weight 123.000 (esc) + \talg straw (esc) + \thash 0\t# rjenkins1 (esc) + \titem rack0 weight 103.000 (esc) + \titem rack1 weight 5.000 (esc) + \titem rack2 weight 5.000 (esc) + \titem rack3 weight 5.000 (esc) + \titem rack4 weight 5.000 (esc) + } + + # rules + rule replicated_ruleset { + \truleset 0 (esc) + \ttype replicated (esc) + \tmin_size 1 (esc) + \tmax_size 10 (esc) + \tstep take root (esc) + \tstep chooseleaf firstn 0 type node (esc) + \tstep emit (esc) + } + + # end crush map +# tunables before reweight + $ crushtool -i "$map" --set-straw-calc-version 0 --reweight --test --show-utilization --max-x 100 --min-x 1 + rule 0 (replicated_ruleset), x = 1..100, numrep = 1..10 + rule 0 (replicated_ruleset) num_rep 1 result size == 1:\t100/100 (esc) + device 0:\t\t stored : 4\t expected : 4 (esc) + device 1:\t\t stored : 4\t expected : 4 (esc) + device 2:\t\t stored : 40\t expected : 4 (esc) + device 3:\t\t stored : 6\t expected : 4 (esc) + device 4:\t\t stored : 1\t expected : 4 (esc) + device 5:\t\t stored : 2\t expected : 4 (esc) + device 7:\t\t stored : 2\t expected : 4 (esc) + device 8:\t\t stored : 3\t expected : 4 (esc) + device 9:\t\t stored : 4\t expected : 4 (esc) + device 12:\t\t stored : 2\t expected : 4 (esc) + device 13:\t\t stored : 1\t expected : 4 (esc) + device 14:\t\t stored : 4\t expected : 4 (esc) + device 15:\t\t stored : 2\t expected : 4 (esc) + device 16:\t\t stored : 5\t expected : 4 (esc) + device 17:\t\t stored : 3\t expected : 4 (esc) + device 19:\t\t stored : 5\t expected : 4 (esc) + device 20:\t\t stored : 5\t expected : 4 (esc) + device 21:\t\t stored : 1\t expected : 4 (esc) + device 22:\t\t stored : 2\t expected : 4 (esc) + device 23:\t\t stored : 2\t expected : 4 (esc) + device 24:\t\t stored : 2\t expected : 4 (esc) + rule 0 (replicated_ruleset) num_rep 2 result size == 2:\t100/100 (esc) + device 0:\t\t stored : 6\t expected : 8 (esc) + device 1:\t\t stored : 6\t expected : 8 (esc) + device 2:\t\t stored : 60\t expected : 8 (esc) + device 3:\t\t stored : 6\t expected : 8 (esc) + device 4:\t\t stored : 6\t expected : 8 (esc) + device 5:\t\t stored : 4\t expected : 8 (esc) + device 6:\t\t stored : 2\t expected : 8 (esc) + device 7:\t\t stored : 4\t expected : 8 (esc) + device 8:\t\t stored : 5\t expected : 8 (esc) + device 9:\t\t stored : 10\t expected : 8 (esc) + device 10:\t\t stored : 3\t expected : 8 (esc) + device 11:\t\t stored : 5\t expected : 8 (esc) + device 12:\t\t stored : 6\t expected : 8 (esc) + device 13:\t\t stored : 3\t expected : 8 (esc) + device 14:\t\t stored : 7\t expected : 8 (esc) + device 15:\t\t stored : 8\t expected : 8 (esc) + device 16:\t\t stored : 7\t expected : 8 (esc) + device 17:\t\t stored : 7\t expected : 8 (esc) + device 18:\t\t stored : 6\t expected : 8 (esc) + device 19:\t\t stored : 11\t expected : 8 (esc) + device 20:\t\t stored : 12\t expected : 8 (esc) + device 21:\t\t stored : 1\t expected : 8 (esc) + device 22:\t\t stored : 4\t expected : 8 (esc) + device 23:\t\t stored : 5\t expected : 8 (esc) + device 24:\t\t stored : 6\t expected : 8 (esc) + rule 0 (replicated_ruleset) num_rep 3 result size == 3:\t100/100 (esc) + device 0:\t\t stored : 8\t expected : 12 (esc) + device 1:\t\t stored : 6\t expected : 12 (esc) + device 2:\t\t stored : 69\t expected : 12 (esc) + device 3:\t\t stored : 6\t expected : 12 (esc) + device 4:\t\t stored : 6\t expected : 12 (esc) + device 5:\t\t stored : 8\t expected : 12 (esc) + device 6:\t\t stored : 9\t expected : 12 (esc) + device 7:\t\t stored : 7\t expected : 12 (esc) + device 8:\t\t stored : 14\t expected : 12 (esc) + device 9:\t\t stored : 16\t expected : 12 (esc) + device 10:\t\t stored : 6\t expected : 12 (esc) + device 11:\t\t stored : 11\t expected : 12 (esc) + device 12:\t\t stored : 9\t expected : 12 (esc) + device 13:\t\t stored : 8\t expected : 12 (esc) + device 14:\t\t stored : 7\t expected : 12 (esc) + device 15:\t\t stored : 8\t expected : 12 (esc) + device 16:\t\t stored : 9\t expected : 12 (esc) + device 17:\t\t stored : 11\t expected : 12 (esc) + device 18:\t\t stored : 9\t expected : 12 (esc) + device 19:\t\t stored : 16\t expected : 12 (esc) + device 20:\t\t stored : 18\t expected : 12 (esc) + device 21:\t\t stored : 5\t expected : 12 (esc) + device 22:\t\t stored : 15\t expected : 12 (esc) + device 23:\t\t stored : 8\t expected : 12 (esc) + device 24:\t\t stored : 11\t expected : 12 (esc) + rule 0 (replicated_ruleset) num_rep 4 result size == 4:\t100/100 (esc) + device 0:\t\t stored : 8\t expected : 16 (esc) + device 1:\t\t stored : 6\t expected : 16 (esc) + device 2:\t\t stored : 72\t expected : 16 (esc) + device 3:\t\t stored : 6\t expected : 16 (esc) + device 4:\t\t stored : 6\t expected : 16 (esc) + device 5:\t\t stored : 13\t expected : 16 (esc) + device 6:\t\t stored : 13\t expected : 16 (esc) + device 7:\t\t stored : 13\t expected : 16 (esc) + device 8:\t\t stored : 15\t expected : 16 (esc) + device 9:\t\t stored : 20\t expected : 16 (esc) + device 10:\t\t stored : 11\t expected : 16 (esc) + device 11:\t\t stored : 20\t expected : 16 (esc) + device 12:\t\t stored : 13\t expected : 16 (esc) + device 13:\t\t stored : 13\t expected : 16 (esc) + device 14:\t\t stored : 11\t expected : 16 (esc) + device 15:\t\t stored : 19\t expected : 16 (esc) + device 16:\t\t stored : 12\t expected : 16 (esc) + device 17:\t\t stored : 13\t expected : 16 (esc) + device 18:\t\t stored : 17\t expected : 16 (esc) + device 19:\t\t stored : 22\t expected : 16 (esc) + device 20:\t\t stored : 21\t expected : 16 (esc) + device 21:\t\t stored : 11\t expected : 16 (esc) + device 22:\t\t stored : 20\t expected : 16 (esc) + device 23:\t\t stored : 10\t expected : 16 (esc) + device 24:\t\t stored : 15\t expected : 16 (esc) + rule 0 (replicated_ruleset) num_rep 5 result size == 4:\t3/100 (esc) + rule 0 (replicated_ruleset) num_rep 5 result size == 5:\t97/100 (esc) + device 0:\t\t stored : 8\t expected : 20 (esc) + device 1:\t\t stored : 6\t expected : 20 (esc) + device 2:\t\t stored : 74\t expected : 20 (esc) + device 3:\t\t stored : 6\t expected : 20 (esc) + device 4:\t\t stored : 6\t expected : 20 (esc) + device 5:\t\t stored : 17\t expected : 20 (esc) + device 6:\t\t stored : 17\t expected : 20 (esc) + device 7:\t\t stored : 19\t expected : 20 (esc) + device 8:\t\t stored : 18\t expected : 20 (esc) + device 9:\t\t stored : 27\t expected : 20 (esc) + device 10:\t\t stored : 15\t expected : 20 (esc) + device 11:\t\t stored : 28\t expected : 20 (esc) + device 12:\t\t stored : 22\t expected : 20 (esc) + device 13:\t\t stored : 18\t expected : 20 (esc) + device 14:\t\t stored : 17\t expected : 20 (esc) + device 15:\t\t stored : 22\t expected : 20 (esc) + device 16:\t\t stored : 14\t expected : 20 (esc) + device 17:\t\t stored : 19\t expected : 20 (esc) + device 18:\t\t stored : 20\t expected : 20 (esc) + device 19:\t\t stored : 25\t expected : 20 (esc) + device 20:\t\t stored : 24\t expected : 20 (esc) + device 21:\t\t stored : 19\t expected : 20 (esc) + device 22:\t\t stored : 25\t expected : 20 (esc) + device 23:\t\t stored : 13\t expected : 20 (esc) + device 24:\t\t stored : 18\t expected : 20 (esc) + rule 0 (replicated_ruleset) num_rep 6 result size == 4:\t3/100 (esc) + rule 0 (replicated_ruleset) num_rep 6 result size == 5:\t97/100 (esc) + device 0:\t\t stored : 8\t expected : 20 (esc) + device 1:\t\t stored : 6\t expected : 20 (esc) + device 2:\t\t stored : 74\t expected : 20 (esc) + device 3:\t\t stored : 6\t expected : 20 (esc) + device 4:\t\t stored : 6\t expected : 20 (esc) + device 5:\t\t stored : 17\t expected : 20 (esc) + device 6:\t\t stored : 17\t expected : 20 (esc) + device 7:\t\t stored : 19\t expected : 20 (esc) + device 8:\t\t stored : 18\t expected : 20 (esc) + device 9:\t\t stored : 27\t expected : 20 (esc) + device 10:\t\t stored : 15\t expected : 20 (esc) + device 11:\t\t stored : 28\t expected : 20 (esc) + device 12:\t\t stored : 22\t expected : 20 (esc) + device 13:\t\t stored : 18\t expected : 20 (esc) + device 14:\t\t stored : 17\t expected : 20 (esc) + device 15:\t\t stored : 22\t expected : 20 (esc) + device 16:\t\t stored : 14\t expected : 20 (esc) + device 17:\t\t stored : 19\t expected : 20 (esc) + device 18:\t\t stored : 20\t expected : 20 (esc) + device 19:\t\t stored : 25\t expected : 20 (esc) + device 20:\t\t stored : 24\t expected : 20 (esc) + device 21:\t\t stored : 19\t expected : 20 (esc) + device 22:\t\t stored : 25\t expected : 20 (esc) + device 23:\t\t stored : 13\t expected : 20 (esc) + device 24:\t\t stored : 18\t expected : 20 (esc) + rule 0 (replicated_ruleset) num_rep 7 result size == 4:\t3/100 (esc) + rule 0 (replicated_ruleset) num_rep 7 result size == 5:\t97/100 (esc) + device 0:\t\t stored : 8\t expected : 20 (esc) + device 1:\t\t stored : 6\t expected : 20 (esc) + device 2:\t\t stored : 74\t expected : 20 (esc) + device 3:\t\t stored : 6\t expected : 20 (esc) + device 4:\t\t stored : 6\t expected : 20 (esc) + device 5:\t\t stored : 17\t expected : 20 (esc) + device 6:\t\t stored : 17\t expected : 20 (esc) + device 7:\t\t stored : 19\t expected : 20 (esc) + device 8:\t\t stored : 18\t expected : 20 (esc) + device 9:\t\t stored : 27\t expected : 20 (esc) + device 10:\t\t stored : 15\t expected : 20 (esc) + device 11:\t\t stored : 28\t expected : 20 (esc) + device 12:\t\t stored : 22\t expected : 20 (esc) + device 13:\t\t stored : 18\t expected : 20 (esc) + device 14:\t\t stored : 17\t expected : 20 (esc) + device 15:\t\t stored : 22\t expected : 20 (esc) + device 16:\t\t stored : 14\t expected : 20 (esc) + device 17:\t\t stored : 19\t expected : 20 (esc) + device 18:\t\t stored : 20\t expected : 20 (esc) + device 19:\t\t stored : 25\t expected : 20 (esc) + device 20:\t\t stored : 24\t expected : 20 (esc) + device 21:\t\t stored : 19\t expected : 20 (esc) + device 22:\t\t stored : 25\t expected : 20 (esc) + device 23:\t\t stored : 13\t expected : 20 (esc) + device 24:\t\t stored : 18\t expected : 20 (esc) + rule 0 (replicated_ruleset) num_rep 8 result size == 4:\t3/100 (esc) + rule 0 (replicated_ruleset) num_rep 8 result size == 5:\t97/100 (esc) + device 0:\t\t stored : 8\t expected : 20 (esc) + device 1:\t\t stored : 6\t expected : 20 (esc) + device 2:\t\t stored : 74\t expected : 20 (esc) + device 3:\t\t stored : 6\t expected : 20 (esc) + device 4:\t\t stored : 6\t expected : 20 (esc) + device 5:\t\t stored : 17\t expected : 20 (esc) + device 6:\t\t stored : 17\t expected : 20 (esc) + device 7:\t\t stored : 19\t expected : 20 (esc) + device 8:\t\t stored : 18\t expected : 20 (esc) + device 9:\t\t stored : 27\t expected : 20 (esc) + device 10:\t\t stored : 15\t expected : 20 (esc) + device 11:\t\t stored : 28\t expected : 20 (esc) + device 12:\t\t stored : 22\t expected : 20 (esc) + device 13:\t\t stored : 18\t expected : 20 (esc) + device 14:\t\t stored : 17\t expected : 20 (esc) + device 15:\t\t stored : 22\t expected : 20 (esc) + device 16:\t\t stored : 14\t expected : 20 (esc) + device 17:\t\t stored : 19\t expected : 20 (esc) + device 18:\t\t stored : 20\t expected : 20 (esc) + device 19:\t\t stored : 25\t expected : 20 (esc) + device 20:\t\t stored : 24\t expected : 20 (esc) + device 21:\t\t stored : 19\t expected : 20 (esc) + device 22:\t\t stored : 25\t expected : 20 (esc) + device 23:\t\t stored : 13\t expected : 20 (esc) + device 24:\t\t stored : 18\t expected : 20 (esc) + rule 0 (replicated_ruleset) num_rep 9 result size == 4:\t2/100 (esc) + rule 0 (replicated_ruleset) num_rep 9 result size == 5:\t98/100 (esc) + device 0:\t\t stored : 8\t expected : 20 (esc) + device 1:\t\t stored : 6\t expected : 20 (esc) + device 2:\t\t stored : 74\t expected : 20 (esc) + device 3:\t\t stored : 6\t expected : 20 (esc) + device 4:\t\t stored : 6\t expected : 20 (esc) + device 5:\t\t stored : 17\t expected : 20 (esc) + device 6:\t\t stored : 17\t expected : 20 (esc) + device 7:\t\t stored : 19\t expected : 20 (esc) + device 8:\t\t stored : 18\t expected : 20 (esc) + device 9:\t\t stored : 28\t expected : 20 (esc) + device 10:\t\t stored : 15\t expected : 20 (esc) + device 11:\t\t stored : 28\t expected : 20 (esc) + device 12:\t\t stored : 22\t expected : 20 (esc) + device 13:\t\t stored : 18\t expected : 20 (esc) + device 14:\t\t stored : 17\t expected : 20 (esc) + device 15:\t\t stored : 22\t expected : 20 (esc) + device 16:\t\t stored : 14\t expected : 20 (esc) + device 17:\t\t stored : 19\t expected : 20 (esc) + device 18:\t\t stored : 20\t expected : 20 (esc) + device 19:\t\t stored : 25\t expected : 20 (esc) + device 20:\t\t stored : 24\t expected : 20 (esc) + device 21:\t\t stored : 19\t expected : 20 (esc) + device 22:\t\t stored : 25\t expected : 20 (esc) + device 23:\t\t stored : 13\t expected : 20 (esc) + device 24:\t\t stored : 18\t expected : 20 (esc) + rule 0 (replicated_ruleset) num_rep 10 result size == 4:\t2/100 (esc) + rule 0 (replicated_ruleset) num_rep 10 result size == 5:\t98/100 (esc) + device 0:\t\t stored : 8\t expected : 20 (esc) + device 1:\t\t stored : 6\t expected : 20 (esc) + device 2:\t\t stored : 74\t expected : 20 (esc) + device 3:\t\t stored : 6\t expected : 20 (esc) + device 4:\t\t stored : 6\t expected : 20 (esc) + device 5:\t\t stored : 17\t expected : 20 (esc) + device 6:\t\t stored : 17\t expected : 20 (esc) + device 7:\t\t stored : 19\t expected : 20 (esc) + device 8:\t\t stored : 18\t expected : 20 (esc) + device 9:\t\t stored : 28\t expected : 20 (esc) + device 10:\t\t stored : 15\t expected : 20 (esc) + device 11:\t\t stored : 28\t expected : 20 (esc) + device 12:\t\t stored : 22\t expected : 20 (esc) + device 13:\t\t stored : 18\t expected : 20 (esc) + device 14:\t\t stored : 17\t expected : 20 (esc) + device 15:\t\t stored : 22\t expected : 20 (esc) + device 16:\t\t stored : 14\t expected : 20 (esc) + device 17:\t\t stored : 19\t expected : 20 (esc) + device 18:\t\t stored : 20\t expected : 20 (esc) + device 19:\t\t stored : 25\t expected : 20 (esc) + device 20:\t\t stored : 24\t expected : 20 (esc) + device 21:\t\t stored : 19\t expected : 20 (esc) + device 22:\t\t stored : 25\t expected : 20 (esc) + device 23:\t\t stored : 13\t expected : 20 (esc) + device 24:\t\t stored : 18\t expected : 20 (esc) + crushtool successfully built or modified map. Use '-o ' to write it out. + $ crushtool -i "$map" --set-straw-calc-version 1 --reweight --test --show-utilization --max-x 100 --min-x 1 + rule 0 (replicated_ruleset), x = 1..100, numrep = 1..10 + rule 0 (replicated_ruleset) num_rep 1 result size == 1:\t100/100 (esc) + device 1:\t\t stored : 1\t expected : 4 (esc) + device 2:\t\t stored : 75\t expected : 4 (esc) + device 3:\t\t stored : 2\t expected : 4 (esc) + device 4:\t\t stored : 1\t expected : 4 (esc) + device 5:\t\t stored : 2\t expected : 4 (esc) + device 7:\t\t stored : 2\t expected : 4 (esc) + device 8:\t\t stored : 1\t expected : 4 (esc) + device 9:\t\t stored : 2\t expected : 4 (esc) + device 14:\t\t stored : 3\t expected : 4 (esc) + device 16:\t\t stored : 3\t expected : 4 (esc) + device 19:\t\t stored : 4\t expected : 4 (esc) + device 20:\t\t stored : 2\t expected : 4 (esc) + device 22:\t\t stored : 1\t expected : 4 (esc) + device 23:\t\t stored : 1\t expected : 4 (esc) + rule 0 (replicated_ruleset) num_rep 2 result size == 2:\t100/100 (esc) + device 0:\t\t stored : 1\t expected : 8 (esc) + device 1:\t\t stored : 1\t expected : 8 (esc) + device 2:\t\t stored : 95\t expected : 8 (esc) + device 3:\t\t stored : 2\t expected : 8 (esc) + device 4:\t\t stored : 1\t expected : 8 (esc) + device 5:\t\t stored : 3\t expected : 8 (esc) + device 6:\t\t stored : 3\t expected : 8 (esc) + device 7:\t\t stored : 7\t expected : 8 (esc) + device 8:\t\t stored : 4\t expected : 8 (esc) + device 9:\t\t stored : 8\t expected : 8 (esc) + device 11:\t\t stored : 1\t expected : 8 (esc) + device 12:\t\t stored : 4\t expected : 8 (esc) + device 13:\t\t stored : 2\t expected : 8 (esc) + device 14:\t\t stored : 6\t expected : 8 (esc) + device 15:\t\t stored : 5\t expected : 8 (esc) + device 16:\t\t stored : 4\t expected : 8 (esc) + device 17:\t\t stored : 8\t expected : 8 (esc) + device 18:\t\t stored : 5\t expected : 8 (esc) + device 19:\t\t stored : 9\t expected : 8 (esc) + device 20:\t\t stored : 7\t expected : 8 (esc) + device 21:\t\t stored : 5\t expected : 8 (esc) + device 22:\t\t stored : 6\t expected : 8 (esc) + device 23:\t\t stored : 5\t expected : 8 (esc) + device 24:\t\t stored : 8\t expected : 8 (esc) + rule 0 (replicated_ruleset) num_rep 3 result size == 3:\t100/100 (esc) + device 0:\t\t stored : 1\t expected : 12 (esc) + device 1:\t\t stored : 1\t expected : 12 (esc) + device 2:\t\t stored : 95\t expected : 12 (esc) + device 3:\t\t stored : 2\t expected : 12 (esc) + device 4:\t\t stored : 1\t expected : 12 (esc) + device 5:\t\t stored : 4\t expected : 12 (esc) + device 6:\t\t stored : 5\t expected : 12 (esc) + device 7:\t\t stored : 10\t expected : 12 (esc) + device 8:\t\t stored : 16\t expected : 12 (esc) + device 9:\t\t stored : 13\t expected : 12 (esc) + device 10:\t\t stored : 8\t expected : 12 (esc) + device 11:\t\t stored : 5\t expected : 12 (esc) + device 12:\t\t stored : 5\t expected : 12 (esc) + device 13:\t\t stored : 5\t expected : 12 (esc) + device 14:\t\t stored : 8\t expected : 12 (esc) + device 15:\t\t stored : 11\t expected : 12 (esc) + device 16:\t\t stored : 17\t expected : 12 (esc) + device 17:\t\t stored : 12\t expected : 12 (esc) + device 18:\t\t stored : 9\t expected : 12 (esc) + device 19:\t\t stored : 15\t expected : 12 (esc) + device 20:\t\t stored : 16\t expected : 12 (esc) + device 21:\t\t stored : 8\t expected : 12 (esc) + device 22:\t\t stored : 11\t expected : 12 (esc) + device 23:\t\t stored : 11\t expected : 12 (esc) + device 24:\t\t stored : 11\t expected : 12 (esc) + rule 0 (replicated_ruleset) num_rep 4 result size == 3:\t3/100 (esc) + rule 0 (replicated_ruleset) num_rep 4 result size == 4:\t97/100 (esc) + device 0:\t\t stored : 1\t expected : 16 (esc) + device 1:\t\t stored : 1\t expected : 16 (esc) + device 2:\t\t stored : 95\t expected : 16 (esc) + device 3:\t\t stored : 2\t expected : 16 (esc) + device 4:\t\t stored : 1\t expected : 16 (esc) + device 5:\t\t stored : 11\t expected : 16 (esc) + device 6:\t\t stored : 12\t expected : 16 (esc) + device 7:\t\t stored : 16\t expected : 16 (esc) + device 8:\t\t stored : 19\t expected : 16 (esc) + device 9:\t\t stored : 18\t expected : 16 (esc) + device 10:\t\t stored : 12\t expected : 16 (esc) + device 11:\t\t stored : 12\t expected : 16 (esc) + device 12:\t\t stored : 13\t expected : 16 (esc) + device 13:\t\t stored : 11\t expected : 16 (esc) + device 14:\t\t stored : 16\t expected : 16 (esc) + device 15:\t\t stored : 19\t expected : 16 (esc) + device 16:\t\t stored : 19\t expected : 16 (esc) + device 17:\t\t stored : 15\t expected : 16 (esc) + device 18:\t\t stored : 11\t expected : 16 (esc) + device 19:\t\t stored : 18\t expected : 16 (esc) + device 20:\t\t stored : 22\t expected : 16 (esc) + device 21:\t\t stored : 12\t expected : 16 (esc) + device 22:\t\t stored : 14\t expected : 16 (esc) + device 23:\t\t stored : 13\t expected : 16 (esc) + device 24:\t\t stored : 14\t expected : 16 (esc) + rule 0 (replicated_ruleset) num_rep 5 result size == 3:\t3/100 (esc) + rule 0 (replicated_ruleset) num_rep 5 result size == 4:\t43/100 (esc) + rule 0 (replicated_ruleset) num_rep 5 result size == 5:\t54/100 (esc) + device 0:\t\t stored : 1\t expected : 20 (esc) + device 1:\t\t stored : 1\t expected : 20 (esc) + device 2:\t\t stored : 95\t expected : 20 (esc) + device 3:\t\t stored : 2\t expected : 20 (esc) + device 4:\t\t stored : 1\t expected : 20 (esc) + device 5:\t\t stored : 14\t expected : 20 (esc) + device 6:\t\t stored : 14\t expected : 20 (esc) + device 7:\t\t stored : 16\t expected : 20 (esc) + device 8:\t\t stored : 19\t expected : 20 (esc) + device 9:\t\t stored : 22\t expected : 20 (esc) + device 10:\t\t stored : 15\t expected : 20 (esc) + device 11:\t\t stored : 16\t expected : 20 (esc) + device 12:\t\t stored : 17\t expected : 20 (esc) + device 13:\t\t stored : 18\t expected : 20 (esc) + device 14:\t\t stored : 19\t expected : 20 (esc) + device 15:\t\t stored : 19\t expected : 20 (esc) + device 16:\t\t stored : 20\t expected : 20 (esc) + device 17:\t\t stored : 17\t expected : 20 (esc) + device 18:\t\t stored : 15\t expected : 20 (esc) + device 19:\t\t stored : 20\t expected : 20 (esc) + device 20:\t\t stored : 26\t expected : 20 (esc) + device 21:\t\t stored : 17\t expected : 20 (esc) + device 22:\t\t stored : 16\t expected : 20 (esc) + device 23:\t\t stored : 15\t expected : 20 (esc) + device 24:\t\t stored : 16\t expected : 20 (esc) + rule 0 (replicated_ruleset) num_rep 6 result size == 3:\t2/100 (esc) + rule 0 (replicated_ruleset) num_rep 6 result size == 4:\t43/100 (esc) + rule 0 (replicated_ruleset) num_rep 6 result size == 5:\t55/100 (esc) + device 0:\t\t stored : 1\t expected : 20 (esc) + device 1:\t\t stored : 1\t expected : 20 (esc) + device 2:\t\t stored : 95\t expected : 20 (esc) + device 3:\t\t stored : 2\t expected : 20 (esc) + device 4:\t\t stored : 1\t expected : 20 (esc) + device 5:\t\t stored : 14\t expected : 20 (esc) + device 6:\t\t stored : 14\t expected : 20 (esc) + device 7:\t\t stored : 16\t expected : 20 (esc) + device 8:\t\t stored : 19\t expected : 20 (esc) + device 9:\t\t stored : 22\t expected : 20 (esc) + device 10:\t\t stored : 15\t expected : 20 (esc) + device 11:\t\t stored : 16\t expected : 20 (esc) + device 12:\t\t stored : 17\t expected : 20 (esc) + device 13:\t\t stored : 18\t expected : 20 (esc) + device 14:\t\t stored : 20\t expected : 20 (esc) + device 15:\t\t stored : 19\t expected : 20 (esc) + device 16:\t\t stored : 20\t expected : 20 (esc) + device 17:\t\t stored : 17\t expected : 20 (esc) + device 18:\t\t stored : 15\t expected : 20 (esc) + device 19:\t\t stored : 20\t expected : 20 (esc) + device 20:\t\t stored : 26\t expected : 20 (esc) + device 21:\t\t stored : 17\t expected : 20 (esc) + device 22:\t\t stored : 16\t expected : 20 (esc) + device 23:\t\t stored : 16\t expected : 20 (esc) + device 24:\t\t stored : 16\t expected : 20 (esc) + rule 0 (replicated_ruleset) num_rep 7 result size == 3:\t2/100 (esc) + rule 0 (replicated_ruleset) num_rep 7 result size == 4:\t42/100 (esc) + rule 0 (replicated_ruleset) num_rep 7 result size == 5:\t56/100 (esc) + device 0:\t\t stored : 1\t expected : 20 (esc) + device 1:\t\t stored : 1\t expected : 20 (esc) + device 2:\t\t stored : 95\t expected : 20 (esc) + device 3:\t\t stored : 2\t expected : 20 (esc) + device 4:\t\t stored : 1\t expected : 20 (esc) + device 5:\t\t stored : 14\t expected : 20 (esc) + device 6:\t\t stored : 14\t expected : 20 (esc) + device 7:\t\t stored : 16\t expected : 20 (esc) + device 8:\t\t stored : 19\t expected : 20 (esc) + device 9:\t\t stored : 22\t expected : 20 (esc) + device 10:\t\t stored : 15\t expected : 20 (esc) + device 11:\t\t stored : 16\t expected : 20 (esc) + device 12:\t\t stored : 17\t expected : 20 (esc) + device 13:\t\t stored : 19\t expected : 20 (esc) + device 14:\t\t stored : 20\t expected : 20 (esc) + device 15:\t\t stored : 19\t expected : 20 (esc) + device 16:\t\t stored : 20\t expected : 20 (esc) + device 17:\t\t stored : 17\t expected : 20 (esc) + device 18:\t\t stored : 15\t expected : 20 (esc) + device 19:\t\t stored : 20\t expected : 20 (esc) + device 20:\t\t stored : 26\t expected : 20 (esc) + device 21:\t\t stored : 17\t expected : 20 (esc) + device 22:\t\t stored : 16\t expected : 20 (esc) + device 23:\t\t stored : 16\t expected : 20 (esc) + device 24:\t\t stored : 16\t expected : 20 (esc) + rule 0 (replicated_ruleset) num_rep 8 result size == 3:\t2/100 (esc) + rule 0 (replicated_ruleset) num_rep 8 result size == 4:\t40/100 (esc) + rule 0 (replicated_ruleset) num_rep 8 result size == 5:\t58/100 (esc) + device 0:\t\t stored : 1\t expected : 20 (esc) + device 1:\t\t stored : 1\t expected : 20 (esc) + device 2:\t\t stored : 95\t expected : 20 (esc) + device 3:\t\t stored : 2\t expected : 20 (esc) + device 4:\t\t stored : 1\t expected : 20 (esc) + device 5:\t\t stored : 14\t expected : 20 (esc) + device 6:\t\t stored : 14\t expected : 20 (esc) + device 7:\t\t stored : 16\t expected : 20 (esc) + device 8:\t\t stored : 19\t expected : 20 (esc) + device 9:\t\t stored : 22\t expected : 20 (esc) + device 10:\t\t stored : 15\t expected : 20 (esc) + device 11:\t\t stored : 16\t expected : 20 (esc) + device 12:\t\t stored : 17\t expected : 20 (esc) + device 13:\t\t stored : 20\t expected : 20 (esc) + device 14:\t\t stored : 20\t expected : 20 (esc) + device 15:\t\t stored : 19\t expected : 20 (esc) + device 16:\t\t stored : 20\t expected : 20 (esc) + device 17:\t\t stored : 17\t expected : 20 (esc) + device 18:\t\t stored : 16\t expected : 20 (esc) + device 19:\t\t stored : 20\t expected : 20 (esc) + device 20:\t\t stored : 26\t expected : 20 (esc) + device 21:\t\t stored : 17\t expected : 20 (esc) + device 22:\t\t stored : 16\t expected : 20 (esc) + device 23:\t\t stored : 16\t expected : 20 (esc) + device 24:\t\t stored : 16\t expected : 20 (esc) + rule 0 (replicated_ruleset) num_rep 9 result size == 3:\t2/100 (esc) + rule 0 (replicated_ruleset) num_rep 9 result size == 4:\t37/100 (esc) + rule 0 (replicated_ruleset) num_rep 9 result size == 5:\t61/100 (esc) + device 0:\t\t stored : 1\t expected : 20 (esc) + device 1:\t\t stored : 1\t expected : 20 (esc) + device 2:\t\t stored : 95\t expected : 20 (esc) + device 3:\t\t stored : 2\t expected : 20 (esc) + device 4:\t\t stored : 1\t expected : 20 (esc) + device 5:\t\t stored : 14\t expected : 20 (esc) + device 6:\t\t stored : 14\t expected : 20 (esc) + device 7:\t\t stored : 16\t expected : 20 (esc) + device 8:\t\t stored : 19\t expected : 20 (esc) + device 9:\t\t stored : 23\t expected : 20 (esc) + device 10:\t\t stored : 15\t expected : 20 (esc) + device 11:\t\t stored : 16\t expected : 20 (esc) + device 12:\t\t stored : 17\t expected : 20 (esc) + device 13:\t\t stored : 20\t expected : 20 (esc) + device 14:\t\t stored : 21\t expected : 20 (esc) + device 15:\t\t stored : 19\t expected : 20 (esc) + device 16:\t\t stored : 20\t expected : 20 (esc) + device 17:\t\t stored : 18\t expected : 20 (esc) + device 18:\t\t stored : 16\t expected : 20 (esc) + device 19:\t\t stored : 20\t expected : 20 (esc) + device 20:\t\t stored : 26\t expected : 20 (esc) + device 21:\t\t stored : 17\t expected : 20 (esc) + device 22:\t\t stored : 16\t expected : 20 (esc) + device 23:\t\t stored : 16\t expected : 20 (esc) + device 24:\t\t stored : 16\t expected : 20 (esc) + rule 0 (replicated_ruleset) num_rep 10 result size == 3:\t2/100 (esc) + rule 0 (replicated_ruleset) num_rep 10 result size == 4:\t36/100 (esc) + rule 0 (replicated_ruleset) num_rep 10 result size == 5:\t62/100 (esc) + device 0:\t\t stored : 1\t expected : 20 (esc) + device 1:\t\t stored : 1\t expected : 20 (esc) + device 2:\t\t stored : 95\t expected : 20 (esc) + device 3:\t\t stored : 2\t expected : 20 (esc) + device 4:\t\t stored : 1\t expected : 20 (esc) + device 5:\t\t stored : 14\t expected : 20 (esc) + device 6:\t\t stored : 14\t expected : 20 (esc) + device 7:\t\t stored : 16\t expected : 20 (esc) + device 8:\t\t stored : 19\t expected : 20 (esc) + device 9:\t\t stored : 23\t expected : 20 (esc) + device 10:\t\t stored : 15\t expected : 20 (esc) + device 11:\t\t stored : 17\t expected : 20 (esc) + device 12:\t\t stored : 17\t expected : 20 (esc) + device 13:\t\t stored : 20\t expected : 20 (esc) + device 14:\t\t stored : 21\t expected : 20 (esc) + device 15:\t\t stored : 19\t expected : 20 (esc) + device 16:\t\t stored : 20\t expected : 20 (esc) + device 17:\t\t stored : 18\t expected : 20 (esc) + device 18:\t\t stored : 16\t expected : 20 (esc) + device 19:\t\t stored : 20\t expected : 20 (esc) + device 20:\t\t stored : 26\t expected : 20 (esc) + device 21:\t\t stored : 17\t expected : 20 (esc) + device 22:\t\t stored : 16\t expected : 20 (esc) + device 23:\t\t stored : 16\t expected : 20 (esc) + device 24:\t\t stored : 16\t expected : 20 (esc) + crushtool successfully built or modified map. Use '-o ' to write it out. -- 2.39.5