From: Samuel Just Date: Wed, 6 Oct 2021 01:14:54 +0000 (-0700) Subject: crimson/os/seastore: max_device -> DEVICE_ID_MAX, clarify users X-Git-Tag: v17.1.0~712^2~2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=9fdc148efebeefabeef71ca1d99fc39c590c6c81;p=ceph.git crimson/os/seastore: max_device -> DEVICE_ID_MAX, clarify users Signed-off-by: Samuel Just --- diff --git a/src/crimson/os/seastore/extent_reader.h b/src/crimson/os/seastore/extent_reader.h index 32aa1db517d3..66dd6db2b482 100644 --- a/src/crimson/os/seastore/extent_reader.h +++ b/src/crimson/os/seastore/extent_reader.h @@ -16,7 +16,7 @@ class ExtentReader { public: using read_ertr = SegmentManager::read_ertr; ExtentReader() { - segment_managers.resize(max_devices, nullptr); + segment_managers.resize(DEVICE_ID_MAX, nullptr); } using read_segment_header_ertr = crimson::errorator< crimson::ct_error::enoent, diff --git a/src/crimson/os/seastore/seastore_types.h b/src/crimson/os/seastore/seastore_types.h index 40009f73dff5..9ea13afa5d18 100644 --- a/src/crimson/os/seastore/seastore_types.h +++ b/src/crimson/os/seastore/seastore_types.h @@ -38,10 +38,12 @@ struct seastore_meta_t { // identifies a specific physical device within seastore using device_id_t = uint8_t; + // order of device_id_t constexpr uint16_t DEVICE_ID_LEN_BITS = 4; -// maximum devices supported -constexpr uint16_t max_devices = 1 << DEVICE_ID_LEN_BITS; + +// maximum number of devices supported +constexpr uint16_t DEVICE_ID_MAX = (1 << DEVICE_ID_LEN_BITS); // segment ids without a device id encapsulated using device_segment_id_t = uint32_t; @@ -94,13 +96,12 @@ public: return std::numeric_limits::max() - 6; } - segment_id_t() = default; segment_id_t(device_id_t id, device_segment_id_t segment) : segment(make_internal(segment, id)) { // only lower 4 bits are effective, and we have to reserve 0x0F for // special XXX_SEG_IDs - assert(id < 15); + assert(id < DEVICE_ID_MAX); } [[gnu::always_inline]] diff --git a/src/crimson/os/seastore/segment_cleaner.h b/src/crimson/os/seastore/segment_cleaner.h index 014003c97f9f..cae8628b75cb 100644 --- a/src/crimson/os/seastore/segment_cleaner.h +++ b/src/crimson/os/seastore/segment_cleaner.h @@ -122,8 +122,8 @@ public: auto& sm_info = segment_info_set->sm_info_vec[sm_id]; if (iter == sm_info->segment_infos.end()) { device_id_t t_sm_id = sm_id; - while (++t_sm_id < max_devices && !segment_info_set->sm_info_vec[t_sm_id]); - if (t_sm_id < max_devices) { + while (++t_sm_id < DEVICE_ID_MAX && !segment_info_set->sm_info_vec[t_sm_id]); + if (t_sm_id < DEVICE_ID_MAX) { auto& sm = segment_info_set->sm_info_vec[t_sm_id]; assert(sm); iter = sm->segment_infos.begin(); @@ -206,7 +206,7 @@ public: SegmentInfoT&& segment_info) { if (!sm_info_vec.size()) { - sm_info_vec.resize(max_devices); + sm_info_vec.resize(DEVICE_ID_MAX); } device_id_t d_id = segment_manager.get_device_id(); sm_info_vec[segment_manager.get_device_id()] = std::make_optional< @@ -227,33 +227,31 @@ public: } auto begin() { device_id_t sm_id = 0; - for (;sm_id < max_devices && !sm_info_vec[sm_id]; - sm_id ++); - return iterator(sm_id, this); + for (; sm_id < DEVICE_ID_MAX && !sm_info_vec[sm_id]; ++sm_id); + return iterator(sm_id, *this); } auto begin() const { device_id_t sm_id = 0; - for (;sm_id < max_devices && !sm_info_vec[sm_id]; - sm_id ++); - return iterator(sm_id, this); + for (; sm_id < DEVICE_ID_MAX && !sm_info_vec[sm_id]; ++sm_id); + return iterator(sm_id, *this); } auto end() { - device_id_t sm_id = max_devices - 1; - for (;!sm_info_vec[sm_id]; - sm_id --); + auto sm_id = DEVICE_ID_MAX; + for (; !sm_info_vec[sm_id]; --sm_id); return iterator(sm_id, this, true); } auto end() const { - device_id_t sm_id = max_devices - 1; - for (;!sm_info_vec[sm_id]; - sm_id --); + auto sm_id = DEVICE_ID_MAX; + for (; !sm_info_vec[sm_id]; --sm_id); return iterator(sm_id, this, true); } auto find_begin(device_id_t id) { + assert(sm_info_vec[id]); auto& sm_info = sm_info_vec[id]; return sm_info->segment_infos.begin(); } auto find_end(device_id_t id) { + assert(sm_info_vec[id]); auto& sm_info = sm_info_vec[id]; return sm_info->segment_infos.end(); }