]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
os/bluestore: Simplified logic of sliding window.
authorAdam Kupczyk <akupczyk@redhat.com>
Fri, 6 Mar 2020 12:52:12 +0000 (13:52 +0100)
committerAdam Kupczyk <akupczyk@redhat.com>
Fri, 6 Mar 2020 12:52:12 +0000 (13:52 +0100)
Signed-off-by: Adam Kupczyk <akupczyk@redhat.com>
src/os/bluestore/BlueStore.cc

index 14c20bc016988af1bb57cdd9186aefa01a82a700..1825ff79d6c78b10c523c88c83bde736da774711 100644 (file)
@@ -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);
 }