From: Samuel Just Date: Thu, 6 Apr 2023 03:45:19 +0000 (+0000) Subject: osd/: move get_recovery_op_priority into PeeringState next to get_*_priority X-Git-Tag: v18.1.0~122^2~14 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=34088bde5e2c9b572742ac56573f6b8082021ed8;p=ceph.git osd/: move get_recovery_op_priority into PeeringState next to get_*_priority Consolidate methods governing recovery scheduling in PeeringState. Signed-off-by: Samuel Just --- diff --git a/src/osd/PeeringState.h b/src/osd/PeeringState.h index b466a013e25fa..e4149f9fa0506 100644 --- a/src/osd/PeeringState.h +++ b/src/osd/PeeringState.h @@ -1577,6 +1577,15 @@ public: /// get priority for pg deletion unsigned get_delete_priority(); +public: + /// get message priority for recovery messages + int get_recovery_op_priority() const { + int64_t pri = 0; + pool.info.opts.get(pool_opts_t::RECOVERY_OP_PRIORITY, &pri); + return pri > 0 ? pri : cct->_conf->osd_recovery_op_priority; + } + +private: bool check_prior_readable_down_osds(const OSDMapRef& map); bool adjust_need_up_thru(const OSDMapRef osdmap); diff --git a/src/osd/PrimaryLogPG.cc b/src/osd/PrimaryLogPG.cc index 9fc2a049331b5..8857eaf884f0c 100644 --- a/src/osd/PrimaryLogPG.cc +++ b/src/osd/PrimaryLogPG.cc @@ -4527,7 +4527,7 @@ void PrimaryLogPG::do_backfill(OpRequestRef op) get_osdmap_epoch(), m->query_epoch, spg_t(info.pgid.pgid, get_primary().shard)); - reply->set_priority(get_recovery_op_priority()); + reply->set_priority(recovery_state.get_recovery_op_priority()); osd->send_message_osd_cluster(reply, m->get_connection()); queue_peering_event( PGPeeringEventRef( @@ -13495,7 +13495,7 @@ uint64_t PrimaryLogPG::recover_primary(uint64_t max, ThreadPool::TPHandle &handl ++skipped; } else { int r = recover_missing( - soid, need, get_recovery_op_priority(), h); + soid, need, recovery_state.get_recovery_op_priority(), h); switch (r) { case PULL_YES: ++started; @@ -13518,7 +13518,7 @@ uint64_t PrimaryLogPG::recover_primary(uint64_t max, ThreadPool::TPHandle &handl recovery_state.set_last_requested(v); } - pgbackend->run_recovery_op(h, get_recovery_op_priority()); + pgbackend->run_recovery_op(h, recovery_state.get_recovery_op_priority()); return started; } @@ -13588,7 +13588,7 @@ int PrimaryLogPG::prep_object_replica_pushes( } else { int r = recover_missing( head, recovery_state.get_pg_log().get_missing().get_items().find(head)->second.need, - get_recovery_op_priority(), h); + recovery_state.get_recovery_op_priority(), h); if (r != PULL_NONE) return 1; return 0; @@ -13738,7 +13738,7 @@ uint64_t PrimaryLogPG::recover_replicas(uint64_t max, ThreadPool::TPHandle &hand } } - pgbackend->run_recovery_op(h, get_recovery_op_priority()); + pgbackend->run_recovery_op(h, recovery_state.get_recovery_op_priority()); return started; } @@ -14063,7 +14063,7 @@ uint64_t PrimaryLogPG::recover_backfill( get_osdmap_epoch()); } - pgbackend->run_recovery_op(h, get_recovery_op_priority()); + pgbackend->run_recovery_op(h, recovery_state.get_recovery_op_priority()); hobject_t backfill_pos = std::min(backfill_info.begin, earliest_peer_backfill()); diff --git a/src/osd/PrimaryLogPG.h b/src/osd/PrimaryLogPG.h index f7356be8e9f01..334ecb0d41808 100644 --- a/src/osd/PrimaryLogPG.h +++ b/src/osd/PrimaryLogPG.h @@ -1532,12 +1532,6 @@ private: /// generate a new temp object name (for recovery) hobject_t get_temp_recovery_object(const hobject_t& target, eversion_t version) override; - int get_recovery_op_priority() const { - int64_t pri = 0; - pool.info.opts.get(pool_opts_t::RECOVERY_OP_PRIORITY, &pri); - return pri > 0 ? pri : cct->_conf->osd_recovery_op_priority; - } - public: coll_t get_coll() { return coll;