From 27e151414b38fcbfa11433788bea9adc6c565260 Mon Sep 17 00:00:00 2001 From: Ronen Friedman Date: Tue, 19 Sep 2023 09:04:23 -0500 Subject: [PATCH] osd/scrub: correct placement for some scheduler-related methods Moving some member functions to their corresponding files. Including ScrubQueue::dump_scrubs() as it was moved in a previous commit, and some ScrubJob code. Signed-off-by: Ronen Friedman --- src/osd/scrubber/osd_scrub.cc | 18 ---------------- src/osd/scrubber/osd_scrub_sched.cc | 32 +++++++++++++---------------- src/osd/scrubber/scrub_job.cc | 25 ++++++++++++++++++++++ 3 files changed, 39 insertions(+), 36 deletions(-) diff --git a/src/osd/scrubber/osd_scrub.cc b/src/osd/scrubber/osd_scrub.cc index ee82bb5f216..05750ecb20b 100644 --- a/src/osd/scrubber/osd_scrub.cc +++ b/src/osd/scrubber/osd_scrub.cc @@ -278,24 +278,6 @@ void OsdScrub::on_config_change() } } -void ScrubQueue::dump_scrubs(ceph::Formatter* f) const -{ - ceph_assert(f != nullptr); - std::lock_guard lck(jobs_lock); - - f->open_array_section("scrubs"); - - std::for_each( - to_scrub.cbegin(), to_scrub.cend(), - [&f](const Scrub::ScrubJobRef& j) { j->dump(f); }); - - std::for_each( - penalized.cbegin(), penalized.cend(), - [&f](const Scrub::ScrubJobRef& j) { j->dump(f); }); - - f->close_section(); -} - // ////////////////////////////////////////////////////////////////////////// // // CPU load tracking and related diff --git a/src/osd/scrubber/osd_scrub_sched.cc b/src/osd/scrubber/osd_scrub_sched.cc index 6554069d271..67933e465a3 100644 --- a/src/osd/scrubber/osd_scrub_sched.cc +++ b/src/osd/scrubber/osd_scrub_sched.cc @@ -247,17 +247,6 @@ std::string_view ScrubQueue::attempt_res_text(Scrub::schedule_result_t v) // g++ (unlike CLANG), requires an extra 'return' here return "(unknown)"sv; } - -std::string_view ScrubJob::qu_state_text(qu_state_t st) -{ - switch (st) { - case qu_state_t::not_registered: return "not registered w/ OSD"sv; - case qu_state_t::registered: return "registered"sv; - case qu_state_t::unregistering: return "unregistering"sv; - } - // g++ (unlike CLANG), requires an extra 'return' here - return "(unknown)"sv; -} // clang-format on std::vector ScrubQueue::ready_to_scrub( @@ -450,14 +439,21 @@ void ScrubQueue::scan_penalized(bool forgive_all, utime_t time_now) } } -void ScrubJob::dump(ceph::Formatter* f) const +void ScrubQueue::dump_scrubs(ceph::Formatter* f) const { - f->open_object_section("scrub"); - f->dump_stream("pgid") << pgid; - f->dump_stream("sched_time") << schedule.scheduled_at; - f->dump_stream("deadline") << schedule.deadline; - f->dump_bool("forced", - schedule.scheduled_at == PgScrubber::scrub_must_stamp()); + ceph_assert(f != nullptr); + std::lock_guard lck(jobs_lock); + + f->open_array_section("scrubs"); + + std::for_each( + to_scrub.cbegin(), to_scrub.cend(), + [&f](const Scrub::ScrubJobRef& j) { j->dump(f); }); + + std::for_each( + penalized.cbegin(), penalized.cend(), + [&f](const Scrub::ScrubJobRef& j) { j->dump(f); }); + f->close_section(); } diff --git a/src/osd/scrubber/scrub_job.cc b/src/osd/scrubber/scrub_job.cc index bf9649c361d..35071af5fd5 100644 --- a/src/osd/scrubber/scrub_job.cc +++ b/src/osd/scrubber/scrub_job.cc @@ -2,6 +2,7 @@ // vim: ts=8 sw=2 smarttab #include "./scrub_job.h" +#include "pg_scrubber.h" using qu_state_t = Scrub::qu_state_t; using must_scrub_t = Scrub::must_scrub_t; @@ -81,3 +82,27 @@ std::ostream& ScrubJob::gen_prefix(std::ostream& out, std::string_view fn) const { return out << log_msg_prefix << fn << ": "; } + +// clang-format off +std::string_view ScrubJob::qu_state_text(qu_state_t st) +{ + switch (st) { + case qu_state_t::not_registered: return "not registered w/ OSD"sv; + case qu_state_t::registered: return "registered"sv; + case qu_state_t::unregistering: return "unregistering"sv; + } + // g++ (unlike CLANG), requires an extra 'return' here + return "(unknown)"sv; +} +// clang-format on + +void ScrubJob::dump(ceph::Formatter* f) const +{ + f->open_object_section("scrub"); + f->dump_stream("pgid") << pgid; + f->dump_stream("sched_time") << schedule.scheduled_at; + f->dump_stream("deadline") << schedule.deadline; + f->dump_bool("forced", + schedule.scheduled_at == PgScrubber::scrub_must_stamp()); + f->close_section(); +} -- 2.39.5