From: Xuehan Xu Date: Thu, 9 Jul 2026 05:51:55 +0000 (+0800) Subject: fixup! crimson/os/seastore: add test workload to promote/evict aggressively X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=6e6b15c66104f711affdae36176b9dc00f9b4d67;p=ceph-ci.git fixup! crimson/os/seastore: add test workload to promote/evict aggressively --- diff --git a/src/crimson/os/seastore/extent_placement_manager.cc b/src/crimson/os/seastore/extent_placement_manager.cc index 62176db27de..9f245b15723 100644 --- a/src/crimson/os/seastore/extent_placement_manager.cc +++ b/src/crimson/os/seastore/extent_placement_manager.cc @@ -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; } diff --git a/src/crimson/os/seastore/extent_placement_manager.h b/src/crimson/os/seastore/extent_placement_manager.h index 55c78c6661f..51ce2c99539 100644 --- a/src/crimson/os/seastore/extent_placement_manager.h +++ b/src/crimson/os/seastore/extent_placement_manager.h @@ -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 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());