]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
osd/: pass OSDService::logger and log_enter/exit through PeeringListener
authorSamuel Just <sjust@redhat.com>
Wed, 3 Apr 2019 00:45:45 +0000 (17:45 -0700)
committersjust@redhat.com <sjust@redhat.com>
Wed, 1 May 2019 18:22:23 +0000 (11:22 -0700)
Signed-off-by: Samuel Just <sjust@redhat.com>
src/osd/PG.cc
src/osd/PG.h
src/osd/PeeringState.cc
src/osd/PeeringState.h

index d1e1196cf042b183bb8314e786fe130a02719537..f79ad47551e77e9f926bf1e65971bf16cf95893a 100644 (file)
@@ -306,6 +306,21 @@ std::ostream& PG::gen_prefix(std::ostream& out) const
 PerfCounters &PG::get_peering_perf() {
   return *(osd->recoverystate_perf);
 }
+
+PerfCounters &PG::get_perf_logger() {
+  return *(osd->logger);
+}
+
+void PG::log_state_enter(const char *state) {
+  osd->pg_recovery_stats.log_enter(state);
+}
+
+void PG::log_state_exit(
+  const char *state_name, utime_t enter_time,
+  uint64_t events, utime_t event_dur) {
+  osd->pg_recovery_stats.log_exit(
+    state_name, ceph_clock_now() - enter_time, events, event_dur);
+}
   
 /********* PG **********/
 
index 48b57cef055ce6cf6626c26e9a54e0efc0f60d28..c46c3558eff539e189a9ab117fd9dfc7c17334c2 100644 (file)
@@ -255,6 +255,11 @@ public:
   }
 
   PerfCounters &get_peering_perf() override;
+  PerfCounters &get_perf_logger() override;
+  void log_state_enter(const char *state) override;
+  void log_state_exit(
+    const char *state_name, utime_t enter_time,
+    uint64_t events, utime_t event_dur) override;
 
   void lock_suspend_timeout(ThreadPool::TPHandle &handle) {
     handle.suspend_tp_timeout();
index 395e304adaed4712133635e90dbfe082437d4f95..b8627871c0e10bb9526a50894b6f5f9e56d0b856 100644 (file)
@@ -4482,7 +4482,7 @@ PeeringState::ToDelete::ToDelete(my_context ctx)
 {
   context< PeeringMachine >().log_enter(state_name);
   DECLARE_LOCALS
-  pg->osd->logger->inc(l_osd_pg_removing);
+  pl->get_perf_logger().inc(l_osd_pg_removing);
 }
 
 void PeeringState::ToDelete::exit()
@@ -4491,7 +4491,7 @@ void PeeringState::ToDelete::exit()
   DECLARE_LOCALS
   // note: on a successful removal, this path doesn't execute. see
   // _delete_some().
-  pg->osd->logger->dec(l_osd_pg_removing);
+  pl->get_perf_logger().dec(l_osd_pg_removing);
 
   pl->cancel_local_background_io_reservation();
 }
@@ -5231,7 +5231,7 @@ void PeeringState::PeeringMachine::log_enter(const char *state_name)
 {
   DECLARE_LOCALS
   psdout(5) << "enter " << state_name << dendl;
-  pg->osd->pg_recovery_stats.log_enter(state_name);
+  pl->log_state_enter(state_name);
 }
 
 void PeeringState::PeeringMachine::log_exit(const char *state_name, utime_t enter_time)
@@ -5239,8 +5239,7 @@ void PeeringState::PeeringMachine::log_exit(const char *state_name, utime_t ente
   DECLARE_LOCALS
   utime_t dur = ceph_clock_now() - enter_time;
   psdout(5) << "exit " << state_name << " " << dur << " " << event_count << " " << event_time << dendl;
-  pg->osd->pg_recovery_stats.log_exit(state_name, ceph_clock_now() - enter_time,
-                                     event_count, event_time);
+  pl->log_state_exit(state_name, enter_time, event_count, event_time);
   event_count = 0;
   event_time = utime_t();
 }
index 52c88711aea132587590cefa10ea4384a65a1814..f718db0a3b2f6c5995a7224bee4bb0a81c4fa663 100644 (file)
@@ -105,8 +105,6 @@ public:
     virtual void set_probe_targets(const set<pg_shard_t> &probe_set) = 0;
     virtual void clear_probe_targets() = 0;
 
-    virtual PerfCounters &get_peering_perf() = 0;
-
     virtual void clear_ready_to_merge() = 0;
 
     virtual void queue_want_pg_temp(const vector<int> &wanted) = 0;
@@ -162,6 +160,14 @@ public:
     virtual epoch_t oldest_stored_osdmap() = 0;
     virtual LogChannel &get_clog() = 0;
 
+    // Logging
+    virtual PerfCounters &get_peering_perf() = 0;
+    virtual PerfCounters &get_perf_logger() = 0;
+    virtual void log_state_enter(const char *state) = 0;
+    virtual void log_state_exit(
+      const char *state_name, utime_t enter_time,
+      uint64_t events, utime_t event_dur) = 0;
+
     virtual ~PeeringListener() {}
   };