From: Adam Kupczyk Date: Fri, 6 Mar 2020 12:52:12 +0000 (+0100) Subject: os/bluestore: Simplified logic of sliding window. X-Git-Tag: v16.1.0~2617^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=eaba85ffcf6081a08168aecf0d2e88a00bf1b859;p=ceph.git os/bluestore: Simplified logic of sliding window. Signed-off-by: Adam Kupczyk --- diff --git a/src/os/bluestore/BlueStore.cc b/src/os/bluestore/BlueStore.cc index 14c20bc01698..1825ff79d6c7 100644 --- a/src/os/bluestore/BlueStore.cc +++ b/src/os/bluestore/BlueStore.cc @@ -15525,12 +15525,12 @@ void BlueStore::_record_allocation_stats() } dout(0) << "------------" << dendl; - auto prev = probe_count++; - auto mask = (1 << alloc_stats_history.size()) - 1; - probe_count &= mask; + ++ probe_count; - for (size_t i = cbits(prev ^ probe_count) - 1; i > 0 ; --i) { - alloc_stats_history[i] = alloc_stats_history[i - 1]; + for (size_t i = alloc_stats_history.size() - 1 ; i > 0 ; --i) { + if ((probe_count % (1 << i)) == 0) { + alloc_stats_history[i] = alloc_stats_history[i - 1]; + } } alloc_stats_history[0].swap(t0); }