summaryrefslogtreecommitdiff
path: root/src/crush/CrushWrapper.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/crush/CrushWrapper.h')
-rw-r--r--src/crush/CrushWrapper.h42
1 files changed, 42 insertions, 0 deletions
diff --git a/src/crush/CrushWrapper.h b/src/crush/CrushWrapper.h
index 27e239d8ac9..82b9e4b2de2 100644
--- a/src/crush/CrushWrapper.h
+++ b/src/crush/CrushWrapper.h
@@ -91,6 +91,28 @@ public:
assert(crush);
}
+ // tunables
+ int get_choose_local_tries() const {
+ return crush->choose_local_tries;
+ }
+ void set_choose_local_tries(int n) {
+ crush->choose_local_tries = n;
+ }
+
+ int get_choose_local_fallback_tries() const {
+ return crush->choose_local_fallback_tries;
+ }
+ void set_choose_local_fallback_tries(int n) {
+ crush->choose_local_fallback_tries = n;
+ }
+
+ int get_choose_total_tries() const {
+ return crush->choose_total_tries;
+ }
+ void set_choose_total_tries(int n) {
+ crush->choose_total_tries = n;
+ }
+
// bucket types
int get_num_type_names() const {
return type_map.size();
@@ -469,6 +491,26 @@ public:
crush_finalize(crush);
}
+ void start_choose_profile() {
+ free(crush->choose_tries);
+ crush->choose_tries = (__u32 *)malloc(sizeof(*crush->choose_tries) * crush->choose_total_tries);
+ memset(crush->choose_tries, 0,
+ sizeof(*crush->choose_tries) * crush->choose_total_tries);
+ }
+ void stop_choose_profile() {
+ free(crush->choose_tries);
+ crush->choose_tries = 0;
+ }
+
+ int get_choose_profile(__u32 **vec) {
+ if (crush->choose_tries) {
+ *vec = crush->choose_tries;
+ return crush->choose_total_tries;
+ }
+ return 0;
+ }
+
+
void set_max_devices(int m) {
crush->max_devices = m;
}