From: Igor Fedotov Date: Mon, 19 May 2025 19:19:45 +0000 (+0300) Subject: os/bluestore:fix bluestore_volume_selection_reserved_factor usage X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=4d42062f1d18cc8296445e9da58f39bf9383faf4;p=ceph.git os/bluestore:fix bluestore_volume_selection_reserved_factor usage Fixes: https://tracker.ceph.com/issues/71368 Signed-off-by: Igor Fedotov (cherry picked from commit 43d7864093f92977a3fd084bbfd65229244b1cc9) --- diff --git a/src/os/bluestore/BlueFS.h b/src/os/bluestore/BlueFS.h index 2c0f43d88692..91de60c6e465 100644 --- a/src/os/bluestore/BlueFS.h +++ b/src/os/bluestore/BlueFS.h @@ -1079,21 +1079,19 @@ public: level_multiplier = _level_multiplier; uint64_t prev_levels = _level0_size; uint64_t cur_level = _level_base; - uint64_t cur_threshold = prev_levels + cur_level; extra_level = 1; do { uint64_t next_level = cur_level * _level_multiplier; uint64_t next_threshold = prev_levels + cur_level + next_level; ++extra_level; if (_db_total <= next_threshold) { - cur_threshold *= reserved_factor; + uint64_t cur_threshold = prev_levels + cur_level * reserved_factor; db_avail4slow = cur_threshold < _db_total ? _db_total - cur_threshold : 0; break; } else { prev_levels += cur_level; cur_level = next_level; - cur_threshold = next_threshold; } } while (true); } @@ -1102,7 +1100,12 @@ public: extra_level = 0; } } - + uint64_t get_available_extra() const { + return db_avail4slow; + } + uint64_t get_extra_level() const { + return extra_level; + } void* get_hint_for_log() const override { return reinterpret_cast(LEVEL_LOG); }