From c89d9f6a9610d166a3154279013fdf719e5226a2 Mon Sep 17 00:00:00 2001 From: Yingxin Cheng Date: Thu, 29 Jul 2021 14:52:20 +0800 Subject: [PATCH] crimson/os/seastore: reassign extent_types_t values and remove extent_type_to_index() Signed-off-by: Yingxin Cheng --- src/crimson/os/seastore/cache.cc | 4 +-- src/crimson/os/seastore/cache.h | 4 ++- src/crimson/os/seastore/seastore_types.h | 44 +++++++----------------- 3 files changed, 17 insertions(+), 35 deletions(-) diff --git a/src/crimson/os/seastore/cache.cc b/src/crimson/os/seastore/cache.cc index bc8840e4b248..64798edff355 100644 --- a/src/crimson/os/seastore/cache.cc +++ b/src/crimson/os/seastore/cache.cc @@ -326,7 +326,7 @@ void Cache::register_metrics() }(); effort_by_ext.fill({}); for (auto& [ext, ext_label] : labels_by_ext) { - auto& effort = effort_by_ext[extent_type_to_index(ext)]; + auto& effort = get_by_ext(effort_by_ext, ext); metrics.add_group( "cache", { @@ -350,7 +350,7 @@ void Cache::register_metrics() auto& delta_by_ext = efforts.delta_bytes_by_ext; delta_by_ext.fill(0); for (auto& [ext, ext_label] : labels_by_ext) { - auto& value = delta_by_ext[extent_type_to_index(ext)]; + auto& value = get_by_ext(delta_by_ext, ext); metrics.add_group( "cache", { diff --git a/src/crimson/os/seastore/cache.h b/src/crimson/os/seastore/cache.h index c67b55741bec..8b1535c4d2ec 100644 --- a/src/crimson/os/seastore/cache.h +++ b/src/crimson/os/seastore/cache.h @@ -660,7 +660,9 @@ private: CounterT& get_by_ext( counter_by_extent_t& counters_by_ext, extent_types_t ext) { - return counters_by_ext[extent_type_to_index(ext)]; + auto index = static_cast(ext); + assert(index < EXTENT_TYPES_MAX); + return counters_by_ext[index]; } seastar::metrics::metric_group metrics; diff --git a/src/crimson/os/seastore/seastore_types.h b/src/crimson/os/seastore/seastore_types.h index 1ef052409b9c..7d485e7ccd35 100644 --- a/src/crimson/os/seastore/seastore_types.h +++ b/src/crimson/os/seastore/seastore_types.h @@ -331,40 +331,20 @@ enum class extent_types_t : uint8_t { ROOT = 0, LADDR_INTERNAL = 1, LADDR_LEAF = 2, - OMAP_INNER = 4, - OMAP_LEAF = 5, - ONODE_BLOCK_STAGED = 6, - COLL_BLOCK = 7, - OBJECT_DATA_BLOCK = 8, - RETIRED_PLACEHOLDER = 9, - - RBM_ALLOC_INFO = 0xE0, + OMAP_INNER = 3, + OMAP_LEAF = 4, + ONODE_BLOCK_STAGED = 5, + COLL_BLOCK = 6, + OBJECT_DATA_BLOCK = 7, + RETIRED_PLACEHOLDER = 8, + RBM_ALLOC_INFO = 9, // Test Block Types - TEST_BLOCK = 0xF0, - TEST_BLOCK_PHYSICAL = 0xF1, - - // None - NONE = 0xFF + TEST_BLOCK = 10, + TEST_BLOCK_PHYSICAL = 11, + // None and the number of valid extent_types_t + NONE = 12, }; - -// FIXME: reassign extent_types_t values instead -inline uint8_t extent_type_to_index(extent_types_t type) { - auto value = static_cast(type); - if (value <= 9) { - return value; - } - switch (type) { - case extent_types_t::RBM_ALLOC_INFO: - return 10; - case extent_types_t::TEST_BLOCK: - return 11; - case extent_types_t::TEST_BLOCK_PHYSICAL: - return 12; - default: - ceph_abort("impossible path"); - }; -} -constexpr uint8_t EXTENT_TYPES_MAX = 13; +constexpr auto EXTENT_TYPES_MAX = static_cast(extent_types_t::NONE); inline bool is_logical_type(extent_types_t type) { switch (type) { -- 2.47.3