@@ -1879,14 +1879,21 @@ void OSDService::queue_scrub_next_chunk(PG *pg, Scrub::scrub_prio_t with_priorit
18791879 queue_scrub_event_msg<PGScrubGetNextChunk>(pg, with_priority);
18801880}
18811881
1882- void OSDService::queue_for_pg_delete (spg_t pgid, epoch_t e)
1882+ void OSDService::queue_for_pg_delete (spg_t pgid, epoch_t e, int64_t num_objects )
18831883{
18841884 dout (10 ) << __func__ << " on " << pgid << " e " << e << dendl;
1885+ uint64_t cost_for_queue = [this , num_objects] {
1886+ if (op_queue_type_t ::mClockScheduler == osd->osd_op_queue_type ()) {
1887+ return num_objects * cct->_conf ->osd_pg_delete_cost ;
1888+ } else {
1889+ return cct->_conf ->osd_pg_delete_cost ;
1890+ }
1891+ }();
18851892 enqueue_back (
18861893 OpSchedulerItem (
18871894 unique_ptr<OpSchedulerItem::OpQueueable>(
18881895 new PGDelete (pgid, e)),
1889- cct-> _conf -> osd_pg_delete_cost ,
1896+ cost_for_queue ,
18901897 cct->_conf ->osd_pg_delete_priority ,
18911898 ceph_clock_now (),
18921899 0 ,
@@ -4068,7 +4075,6 @@ int OSD::init()
40684075
40694076 // Override a few options if mclock scheduler is enabled.
40704077 maybe_override_sleep_options_for_qos ();
4071- maybe_override_cost_for_qos ();
40724078 maybe_override_options_for_qos ();
40734079 maybe_override_max_osd_capacity_for_qos ();
40744080
@@ -9886,9 +9892,6 @@ void OSD::handle_conf_change(const ConfigProxy& conf,
98869892 changed.count (" osd_recovery_sleep_hybrid" )) {
98879893 maybe_override_sleep_options_for_qos ();
98889894 }
9889- if (changed.count (" osd_pg_delete_cost" )) {
9890- maybe_override_cost_for_qos ();
9891- }
98929895 if (changed.count (" osd_min_recovery_priority" )) {
98939896 service.local_reserver .set_min_priority (cct->_conf ->osd_min_recovery_priority );
98949897 service.remote_reserver .set_min_priority (cct->_conf ->osd_min_recovery_priority );
@@ -10225,15 +10228,6 @@ void OSD::maybe_override_sleep_options_for_qos()
1022510228 }
1022610229}
1022710230
10228- void OSD::maybe_override_cost_for_qos ()
10229- {
10230- // If the scheduler enabled is mclock, override the default PG deletion cost
10231- // so that mclock can meet the QoS goals.
10232- if (op_queue_type_t ::mClockScheduler == osd_op_queue_type ()) {
10233- uint64_t pg_delete_cost = 15728640 ;
10234- cct->_conf .set_val (" osd_pg_delete_cost" , std::to_string (pg_delete_cost));
10235- }
10236- }
1023710231
1023810232/* *
1023910233 * A context for receiving status from a background mon command to set
0 commit comments