summaryrefslogtreecommitdiffstats
path: root/include/linux/crush
diff options
context:
space:
mode:
authorIlya Dryomov <idryomov@gmail.com>2016-01-31 14:36:07 +0100
committerIlya Dryomov <idryomov@gmail.com>2016-02-04 18:25:55 +0100
commitdc6ae6d8e7726bad4f1c87244b49cac851746c65 (patch)
tree3782e77f13157c488cd9a49db5726e7411f0a2d7 /include/linux/crush
parent56a4f3091dceb7dfc14dc3ef1d5f59fe39ba4447 (diff)
downloadlinux-stable-dc6ae6d8e7726bad4f1c87244b49cac851746c65.tar.gz
linux-stable-dc6ae6d8e7726bad4f1c87244b49cac851746c65.tar.bz2
linux-stable-dc6ae6d8e7726bad4f1c87244b49cac851746c65.zip
crush: add chooseleaf_stable tunable
Add a tunable to fix the bug that chooseleaf may cause unnecessary pg migrations when some device fails. Reflects ceph.git commit fdb3f664448e80d984470f32f04e2e6f03ab52ec. Signed-off-by: Ilya Dryomov <idryomov@gmail.com> Reviewed-by: Sage Weil <sage@redhat.com>
Diffstat (limited to 'include/linux/crush')
-rw-r--r--include/linux/crush/crush.h8
1 files changed, 7 insertions, 1 deletions
diff --git a/include/linux/crush/crush.h b/include/linux/crush/crush.h
index 48b49305716b..be8f12b8f195 100644
--- a/include/linux/crush/crush.h
+++ b/include/linux/crush/crush.h
@@ -59,7 +59,8 @@ 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
+ CRUSH_RULE_SET_CHOOSELEAF_VARY_R = 12,
+ CRUSH_RULE_SET_CHOOSELEAF_STABLE = 13
};
/*
@@ -205,6 +206,11 @@ struct crush_map {
* mappings line up a bit better with previous mappings. */
__u8 chooseleaf_vary_r;
+ /* if true, it makes chooseleaf firstn to return stable results (if
+ * no local retry) so that data migrations would be optimal when some
+ * device fails. */
+ __u8 chooseleaf_stable;
+
#ifndef __KERNEL__
/*
* version 0 (original) of straw_calc has various flaws. version 1