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: v17.2.7~418^2~14 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=6e80251fda701c96a94418807b53e05380ca7bb2;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 3cec0f2daa36..eb5bcff83a87 100644 --- a/src/osd/PeeringState.h +++ b/src/osd/PeeringState.h @@ -1560,6 +1560,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 bc2c4e0ca84d..d278bacc0635 100644 --- a/src/osd/PrimaryLogPG.cc +++ b/src/osd/PrimaryLogPG.cc @@ -4524,7 +4524,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( @@ -13502,7 +13502,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; @@ -13525,7 +13525,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; } @@ -13595,7 +13595,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; @@ -13745,7 +13745,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; } @@ -14070,7 +14070,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 14b9aeb25d70..a0505004c958 100644 --- a/src/osd/PrimaryLogPG.h +++ b/src/osd/PrimaryLogPG.h @@ -1533,12 +1533,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;