From 3a072e4b2f143c7846711ba9582183d3e07e5f21 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Tue, 31 Jan 2017 15:03:17 -0500 Subject: [PATCH] osd/OSDMapMapper: count total pgs Signed-off-by: Sage Weil --- src/osd/OSDMapMapping.cc | 2 ++ src/osd/OSDMapMapping.h | 5 +++++ 2 files changed, 7 insertions(+) diff --git a/src/osd/OSDMapMapping.cc b/src/osd/OSDMapMapping.cc index 55cd22428f02b..9edd23ebe2a0e 100644 --- a/src/osd/OSDMapMapping.cc +++ b/src/osd/OSDMapMapping.cc @@ -12,8 +12,10 @@ // the dimensions (pg_num and size) match up. void OSDMapMapping::_init_mappings(const OSDMap& osdmap) { + num_pgs = 0; auto q = pools.begin(); for (auto& p : osdmap.get_pools()) { + num_pgs += p.second.get_pg_num(); // drop unneeded pools while (q != pools.end() && q->first < p.first) { q = pools.erase(q); diff --git a/src/osd/OSDMapMapping.h b/src/osd/OSDMapMapping.h index cb9498c371a12..95fed453f9cf2 100644 --- a/src/osd/OSDMapMapping.h +++ b/src/osd/OSDMapMapping.h @@ -85,6 +85,7 @@ class OSDMapMapping { std::vector> acting_rmap; // osd -> pg //unused: std::vector> up_rmap; // osd -> pg epoch_t epoch; + uint64_t num_pgs = 0; void _init_mappings(const OSDMap& osdmap); void _update_range( @@ -131,6 +132,10 @@ public: epoch_t get_epoch() const { return epoch; } + + uint64_t get_num_pgs() const { + return num_pgs; + } }; /// thread pool to calculate mapping on multiple CPUs -- 2.39.5