From 1edb5740f5d3f422da0b66c504def0dcf5a9a520 Mon Sep 17 00:00:00 2001 From: Yingxin Cheng Date: Fri, 1 Apr 2022 10:11:09 +0800 Subject: [PATCH] crimson/os/seastore/EPM: replace random by a simpler seed Signed-off-by: Yingxin Cheng --- src/crimson/os/seastore/extent_placement_manager.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/crimson/os/seastore/extent_placement_manager.h b/src/crimson/os/seastore/extent_placement_manager.h index 30dbae086ece5..944232afe6709 100644 --- a/src/crimson/os/seastore/extent_placement_manager.h +++ b/src/crimson/os/seastore/extent_placement_manager.h @@ -92,6 +92,7 @@ public: void init_ool_writers(SegmentProvider &sp, SegmentSeqAllocator &ssa) { // Currently only one SegmentProvider is supported, so hardcode the // writers_by_hint for now. + writer_seed = 0; writer_refs.clear(); writers_by_hint.resize((std::size_t)placement_hint_t::NUM_HINTS, {}); @@ -235,9 +236,10 @@ private: assert(hint_index < writers_by_hint.size()); auto& writers = writers_by_hint[hint_index]; assert(writers.size() > 0); - return writers[std::rand() % writers.size()]; + return writers[writer_seed++ % writers.size()]; } + std::size_t writer_seed = 0; std::vector writer_refs; std::vector> writers_by_hint; std::vector devices_by_id; -- 2.39.5