diff options
Diffstat (limited to 'src/crush/CrushWrapper.h')
-rw-r--r-- | src/crush/CrushWrapper.h | 42 |
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; } |