From d54ca487b3b99168a266df64180f12f1056a14fa Mon Sep 17 00:00:00 2001 From: Samuel Just Date: Tue, 12 Jul 2022 16:51:01 -0700 Subject: [PATCH] crimson/osd: move osdmap_gate to CoreState Signed-off-by: Samuel Just --- src/crimson/osd/osd.cc | 5 ++--- src/crimson/osd/osd.h | 4 +--- src/crimson/osd/pg_shard_manager.h | 4 +++- src/crimson/osd/shard_services.cc | 1 + src/crimson/osd/shard_services.h | 1 + 5 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/crimson/osd/osd.cc b/src/crimson/osd/osd.cc index 4c9d92fbfe3df..2fa8511401e69 100644 --- a/src/crimson/osd/osd.cc +++ b/src/crimson/osd/osd.cc @@ -101,7 +101,6 @@ OSD::OSD(int id, uint32_t nonce, update_stats(); }}, asok{seastar::make_lw_shared()}, - osdmap_gate("OSD::osdmap_gate"), log_client(cluster_msgr.get(), LogClient::NO_FLAGS), clog(log_client.create_channel()) { @@ -332,8 +331,8 @@ seastar::future<> OSD::start() superblock = std::move(sb); return get_map(superblock.current_epoch); }).then([this](cached_map_t&& map) { - osdmap_gate.got_map(map->get_epoch()); pg_shard_manager.update_map(map); + pg_shard_manager.got_map(map->get_epoch()); osdmap = std::move(map); bind_epoch = osdmap->get_epoch(); return load_pgs(); @@ -1446,7 +1445,7 @@ seastar::future<> OSD::consume_map(epoch_t epoch) *this, pg.second, pg.second->get_osdmap_epoch(), epoch, PeeringCtx{}, false).second; }).then([epoch, this] { - osdmap_gate.got_map(epoch); + pg_shard_manager.got_map(epoch); return seastar::make_ready_future(); }); } diff --git a/src/crimson/osd/osd.h b/src/crimson/osd/osd.h index a6030e2ac91ec..3f38e28aed05c 100644 --- a/src/crimson/osd/osd.h +++ b/src/crimson/osd/osd.h @@ -215,8 +215,6 @@ private: crimson::net::ConnectionRef conn, Ref m); public: - OSD_OSDMapGate osdmap_gate; - ShardServices &get_shard_services() { return pg_shard_manager.get_shard_services(); } @@ -273,7 +271,7 @@ public: OSD_OSDMapGate::OSDMapBlocker::BlockingEvent; return opref.template with_blocking_event( [this, &opref](auto &&trigger) { - return osdmap_gate.wait_for_map( + return pg_shard_manager.wait_for_map( std::move(trigger), opref.get_epoch(), &shard_services diff --git a/src/crimson/osd/pg_shard_manager.h b/src/crimson/osd/pg_shard_manager.h index 571f5cdb47e84..bb0d5c7a8abc3 100644 --- a/src/crimson/osd/pg_shard_manager.h +++ b/src/crimson/osd/pg_shard_manager.h @@ -47,6 +47,8 @@ public: } FORWARD_TO_CORE(send_pg_created) -}; + FORWARD(got_map, got_map, core_state.osdmap_gate) + FORWARD(wait_for_map, wait_for_map, core_state.osdmap_gate) +} } diff --git a/src/crimson/osd/shard_services.cc b/src/crimson/osd/shard_services.cc index 71c3c96ab8520..26a758464d6f0 100644 --- a/src/crimson/osd/shard_services.cc +++ b/src/crimson/osd/shard_services.cc @@ -50,6 +50,7 @@ CoreState::CoreState( crimson::os::FuturizedStore &store) : whoami(whoami), osdmap_service(osdmap_service), + osdmap_gate("CoreState::osdmap_gate"), cluster_msgr(cluster_msgr), public_msgr(public_msgr), monc(monc), diff --git a/src/crimson/osd/shard_services.h b/src/crimson/osd/shard_services.h index d3df2c8f794c5..85d7f4a5fae2d 100644 --- a/src/crimson/osd/shard_services.h +++ b/src/crimson/osd/shard_services.h @@ -126,6 +126,7 @@ class CoreState : public md_config_obs_t { void update_map(OSDMapService::cached_map_t new_osdmap) { osdmap = std::move(new_osdmap); } + OSD_OSDMapGate osdmap_gate; crimson::net::Messenger &cluster_msgr; crimson::net::Messenger &public_msgr; -- 2.39.5