From: Sage Weil Date: Tue, 4 Feb 2014 21:40:49 +0000 (-0800) Subject: crush: add SET_CHOOSELEAF_VARY_R step X-Git-Tag: v0.78~202^2~5 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=f944ccc20aee60a7d8da7e405ec75ad1cd449fac;p=ceph.git crush: add SET_CHOOSELEAF_VARY_R step This lets you adjust the vary_r tunable on a per-rule basis. Signed-off-by: Sage Weil --- diff --git a/src/crush/crush.h b/src/crush/crush.h index 249a99291070..8bac92aaa9ed 100644 --- a/src/crush/crush.h +++ b/src/crush/crush.h @@ -59,6 +59,7 @@ enum { CRUSH_RULE_SET_CHOOSELEAF_TRIES = 9, /* override chooseleaf_descend_once */ CRUSH_RULE_SET_CHOOSE_LOCAL_TRIES = 10, CRUSH_RULE_SET_CHOOSE_LOCAL_FALLBACK_TRIES = 11, + CRUSH_RULE_SET_CHOOSELEAF_VARY_R = 12 }; /* diff --git a/src/crush/mapper.c b/src/crush/mapper.c index 89227028f728..22cde518f58a 100644 --- a/src/crush/mapper.c +++ b/src/crush/mapper.c @@ -741,6 +741,11 @@ int crush_do_rule(const struct crush_map *map, choose_local_fallback_retries = curstep->arg1; break; + case CRUSH_RULE_SET_CHOOSELEAF_VARY_R: + if (curstep->arg1 >= 0) + vary_r = curstep->arg1; + break; + case CRUSH_RULE_CHOOSELEAF_FIRSTN: case CRUSH_RULE_CHOOSE_FIRSTN: firstn = 1;