1515#include " crimson/common/shared_lru.h"
1616#include " crimson/os/futurized_collection.h"
1717#include " osd/PeeringState.h"
18+ #include " crimson/common/log.h"
1819#include " crimson/osd/osdmap_service.h"
1920#include " crimson/osd/osdmap_gate.h"
2021#include " crimson/osd/osd_meta.h"
@@ -540,26 +541,48 @@ class ShardServices : public OSDMapService {
540541 FORWARD(pg_created, pg_created, local_state.pg_map)
541542
542543 FORWARD_TO_OSD_SINGLETON_TARGET(
543- local_update_priority,
544- local_reserver.update_priority)
545- FORWARD_TO_OSD_SINGLETON_TARGET(
546- local_cancel_reservation,
547- local_reserver.cancel_reservation)
544+ snap_dump_reservations,
545+ snap_reserver.dump)
546+
547+ auto local_update_priority(spg_t pgid, unsigned newprio) {
548+ LOG_PREFIX (ShardServices::local_update_priority);
549+ SUBDEBUG (osd, " sending to singleton pgid {} newprio {}" , pgid, newprio);
550+ return with_singleton ([FNAME, pgid, newprio](auto &singleton) {
551+ SUBDEBUG (osd, " on singleton pgid {} newprio {}" , pgid, newprio);
552+ return singleton.local_reserver .update_priority (pgid, newprio);
553+ });
554+ }
555+ auto local_cancel_reservation (spg_t pgid) {
556+ LOG_PREFIX (ShardServices::local_cancel_reservation);
557+ SUBDEBUG (osd, " sending to singleton pgid {}" , pgid);
558+ return with_singleton ([FNAME, pgid](auto &singleton) {
559+ SUBDEBUG (osd, " on singleton pgid {}" , pgid);
560+ return singleton.local_reserver .cancel_reservation (pgid);
561+ });
562+ }
548563 FORWARD_TO_OSD_SINGLETON_TARGET (
549564 local_dump_reservations,
550565 local_reserver.dump)
551- FORWARD_TO_OSD_SINGLETON_TARGET(
552- remote_cancel_reservation,
553- remote_reserver.cancel_reservation)
566+
567+ auto remote_update_priority(spg_t pgid, unsigned newprio) {
568+ LOG_PREFIX (ShardServices::remote_update_priority);
569+ SUBDEBUG (osd, " sending to singleton pgid {} newprio {}" , pgid, newprio);
570+ return with_singleton ([FNAME, pgid, newprio](auto &singleton) {
571+ SUBDEBUG (osd, " on singleton pgid {} newprio {}" , pgid, newprio);
572+ return singleton.remote_reserver .update_priority (pgid, newprio);
573+ });
574+ }
575+ auto remote_cancel_reservation (spg_t pgid) {
576+ LOG_PREFIX (ShardServices::remote_cancel_reservation);
577+ SUBDEBUG (osd, " sending to singleton pgid {}" , pgid);
578+ return with_singleton ([FNAME, pgid](auto &singleton) {
579+ SUBDEBUG (osd, " on singleton pgid {}" , pgid);
580+ return singleton.remote_reserver .cancel_reservation (pgid);
581+ });
582+ }
554583 FORWARD_TO_OSD_SINGLETON_TARGET (
555584 remote_dump_reservations,
556585 remote_reserver.dump)
557- FORWARD_TO_OSD_SINGLETON_TARGET(
558- snap_cancel_reservation,
559- snap_reserver.cancel_reservation)
560- FORWARD_TO_OSD_SINGLETON_TARGET(
561- snap_dump_reservations,
562- snap_reserver.dump)
563586
564587 Context *invoke_context_on_core(core_id_t core, Context *c) {
565588 if (!c) return nullptr ;
@@ -576,9 +599,13 @@ class ShardServices : public OSDMapService {
576599 Context *on_reserved,
577600 unsigned prio,
578601 Context *on_preempt) {
602+ LOG_PREFIX (ShardServices::local_request_reservation);
603+ SUBDEBUG (osd, " sending to singleton pgid {} prio {}" , item, prio);
579604 return with_singleton (
580- [item, prio](OSDSingletonState &singleton,
581- Context *wrapped_on_reserved, Context *wrapped_on_preempt) {
605+ [FNAME, item, prio](
606+ OSDSingletonState &singleton,
607+ Context *wrapped_on_reserved, Context *wrapped_on_preempt) {
608+ SUBDEBUG (osd, " on singleton pgid {} prio {}" , item, prio);
582609 return singleton.local_reserver .request_reservation (
583610 item,
584611 wrapped_on_reserved,
@@ -593,9 +620,13 @@ class ShardServices : public OSDMapService {
593620 Context *on_reserved,
594621 unsigned prio,
595622 Context *on_preempt) {
623+ LOG_PREFIX (ShardServices::remote_request_reservation);
624+ SUBDEBUG (osd, " sending to singleton pgid {} prio {}" , item, prio);
596625 return with_singleton (
597- [item, prio](OSDSingletonState &singleton,
598- Context *wrapped_on_reserved, Context *wrapped_on_preempt) {
626+ [FNAME, item, prio](
627+ OSDSingletonState &singleton,
628+ Context *wrapped_on_reserved, Context *wrapped_on_preempt) {
629+ SUBDEBUG (osd, " on singleton pgid {} prio {}" , item, prio);
599630 return singleton.remote_reserver .request_reservation (
600631 item,
601632 wrapped_on_reserved,
0 commit comments