From: Samuel Just Date: Wed, 31 Aug 2022 22:20:25 +0000 (-0700) Subject: crimson/osd: move perf counter ownership to OSDSingletonState X-Git-Tag: v18.1.0~639^2~19^2~17 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=752e8cf8f38e8a2a699cf0f97b00c64795798354;p=ceph-ci.git crimson/osd: move perf counter ownership to OSDSingletonState Later, we'll want to create a properly sharded implentation that avoids barriers. Signed-off-by: Samuel Just --- diff --git a/src/crimson/osd/pg_shard_manager.cc b/src/crimson/osd/pg_shard_manager.cc index 84b17e721f9..9913d966f63 100644 --- a/src/crimson/osd/pg_shard_manager.cc +++ b/src/crimson/osd/pg_shard_manager.cc @@ -27,7 +27,12 @@ seastar::future<> PGShardManager::start( ).then([this, whoami, &store] { ceph::mono_time startup_time = ceph::mono_clock::now(); return shard_services.start( - std::ref(osd_singleton_state), whoami, startup_time, std::ref(store)); + std::ref(osd_singleton_state), + whoami, + startup_time, + osd_singleton_state.local().perf, + osd_singleton_state.local().recoverystate_perf, + std::ref(store)); }); } diff --git a/src/crimson/osd/shard_services.cc b/src/crimson/osd/shard_services.cc index f9f0cb393b0..bc5a02c3d3c 100644 --- a/src/crimson/osd/shard_services.cc +++ b/src/crimson/osd/shard_services.cc @@ -36,22 +36,19 @@ namespace crimson::osd { PerShardState::PerShardState( int whoami, ceph::mono_time startup_time, + PerfCounters *perf, + PerfCounters *recoverystate_perf, crimson::os::FuturizedStore &store) : whoami(whoami), store(store), + perf(perf), recoverystate_perf(recoverystate_perf), throttler(crimson::common::local_conf()), obc_registry(crimson::common::local_conf()), next_tid( static_cast(seastar::this_shard_id()) << (std::numeric_limits::digits - 8)), startup_time(startup_time) -{ - perf = build_osd_logger(&cct); - cct.get_perfcounters_collection()->add(perf); - - recoverystate_perf = build_recoverystate_perf(&cct); - cct.get_perfcounters_collection()->add(recoverystate_perf); -} +{} seastar::future<> PerShardState::stop_pgs() { @@ -130,6 +127,12 @@ OSDSingletonState::OSDSingletonState( { crimson::common::local_conf().add_observer(this); osdmaps[0] = boost::make_local_shared(); + + perf = build_osd_logger(&cct); + cct.get_perfcounters_collection()->add(perf); + + recoverystate_perf = build_recoverystate_perf(&cct); + cct.get_perfcounters_collection()->add(recoverystate_perf); } seastar::future<> OSDSingletonState::send_to_osd( diff --git a/src/crimson/osd/shard_services.h b/src/crimson/osd/shard_services.h index b5f9a388c61..63e251a1366 100644 --- a/src/crimson/osd/shard_services.h +++ b/src/crimson/osd/shard_services.h @@ -145,6 +145,8 @@ public: PerShardState( int whoami, ceph::mono_time startup_time, + PerfCounters *perf, + PerfCounters *recoverystate_perf, crimson::os::FuturizedStore &store); }; @@ -172,6 +174,8 @@ private: const int whoami; crimson::common::CephContext cct; + PerfCounters *perf = nullptr; + PerfCounters *recoverystate_perf = nullptr; OSDState osd_state;