]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
fixup! crimson/os/seastore: add test workload to promote/evict aggressively
authorXuehan Xu <xuxuehan@qianxin.com>
Thu, 9 Jul 2026 05:51:55 +0000 (13:51 +0800)
committerXuehan Xu <xuxuehan@qianxin.com>
Fri, 10 Jul 2026 14:24:38 +0000 (22:24 +0800)
src/crimson/os/seastore/extent_placement_manager.cc
src/crimson/os/seastore/extent_placement_manager.h

index 62176db27de5a8ee6c5b8287dff912748ede104c..9f245b1572356c5e7848a84c0385aaa4cbe8c33b 100644 (file)
@@ -894,16 +894,12 @@ ExtentPlacementManager::BackgroundProcess::run()
       if (cold_cleaner) {
         cold_cleaner->maybe_adjust_thresholds();
       }
-      if (unlikely(test_workload && force_process_state != ForceProcessState::STOP)) {
-        last_process_state = force_process_state;
-        force_process_state = ForceProcessState::STOP;
-        set_next_arm_timepoint();
-      }
+      maybe_reschedule_force_process();
     } else {
       log_state("run(block)");
       assert(!blocking_background);
       if (unlikely(test_workload)) {
-        set_next_arm_timepoint();
+        set_next_force_process();
       }
       blocking_background = seastar::promise<>();
       co_await blocking_background->get_future();
@@ -1061,7 +1057,7 @@ ExtentPlacementManager::BackgroundProcess::do_background_cycle()
 
   bool force_trim = false;
   bool should_abort_cleaner_usage = true;
-  if (unlikely(test_workload && force_process_state == ForceProcessState::TRIM)) {
+  if (unlikely(should_force_trim())) {
     if (!proceed_trim) {
       should_abort_cleaner_usage = false;
     }
@@ -1115,7 +1111,7 @@ ExtentPlacementManager::BackgroundProcess::do_background_cycle()
       eviction_state.is_fast_mode(), logical_bucket->should_demote());
 
     bool abort_cold_cleaner_usage = true;
-    if (unlikely(test_workload && force_process_state == ForceProcessState::CLEAN)) {
+    if (unlikely(should_force_clean())) {
       if (!proceed_clean_main) {
         abort_cold_cleaner_usage = false;
       }
index 55c78c6661f97c3280fee1ace317b9c0f34b4170..51ce2c99539b061827ee884c0f8f7f1925b5257c 100644 (file)
@@ -921,7 +921,7 @@ private:
         "seastore_test_workload_write_through_probability");
       SUBINFO(seastore_epm, "crimson test workload supported, enabled: {}", test_workload);
       if (test_workload) {
-        set_next_arm_timepoint();
+        set_next_force_process();
       }
     }
 
@@ -1389,7 +1389,7 @@ private:
     seastar::timer<seastar::steady_clock_type> force_background_timer;
     int force_process_half_life;
 
-    void set_next_arm_timepoint() {
+    void set_next_force_process() {
       assert(test_workload);
       force_background_timer.rearm(
         seastar::steady_clock_type::now() +
@@ -1407,6 +1407,23 @@ private:
       do_wake_background();
     }
 
+    void maybe_reschedule_force_process() {
+      if (unlikely(test_workload &&
+                   force_process_state != ForceProcessState::STOP)) {
+        last_process_state = force_process_state;
+        force_process_state = ForceProcessState::STOP;
+        set_next_force_process();
+      }
+    }
+
+    bool should_force_trim() const {
+      return test_workload && force_process_state == ForceProcessState::TRIM;
+    }
+
+    bool should_force_clean() const {
+      return test_workload && force_process_state == ForceProcessState::CLEAN;
+    }
+
     bool force_run_background() const {
       return test_workload && force_process_state != ForceProcessState::STOP
         && (logical_bucket && logical_bucket->could_demote());