From 9628f34018d4104a0ce2f586743576b07059f8ec Mon Sep 17 00:00:00 2001 From: Samuel Just Date: Fri, 30 Oct 2020 17:03:33 -0700 Subject: [PATCH] crimson/os/seastore/.../ephemeral: introduce pauses for testing Signed-off-by: Samuel Just --- .../os/seastore/segment_manager/ephemeral.cc | 26 ++++++++++++++----- 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/src/crimson/os/seastore/segment_manager/ephemeral.cc b/src/crimson/os/seastore/segment_manager/ephemeral.cc index 952cf2c678c29..b58e842bb144e 100644 --- a/src/crimson/os/seastore/segment_manager/ephemeral.cc +++ b/src/crimson/os/seastore/segment_manager/ephemeral.cc @@ -4,6 +4,8 @@ #include #include +#include "seastar/core/sleep.hh" + #include "crimson/common/log.h" #include "include/buffer.h" @@ -39,7 +41,9 @@ segment_off_t EphemeralSegment::get_write_capacity() const Segment::close_ertr::future<> EphemeralSegment::close() { manager.segment_close(id); - return close_ertr::now(); + return close_ertr::now().safe_then([] { + return seastar::sleep(std::chrono::milliseconds(1)); + }); } Segment::write_ertr::future<> EphemeralSegment::write( @@ -60,7 +64,9 @@ Segment::close_ertr::future<> EphemeralSegmentManager::segment_close(segment_id_ return crimson::ct_error::invarg::make(); segment_state[id] = segment_state_t::CLOSED; - return Segment::close_ertr::now(); + return Segment::close_ertr::now().safe_then([] { + return seastar::sleep(std::chrono::milliseconds(1)); + }); } Segment::write_ertr::future<> EphemeralSegmentManager::segment_write( @@ -79,7 +85,9 @@ Segment::write_ertr::future<> EphemeralSegmentManager::segment_write( return crimson::ct_error::invarg::make(); bl.begin().copy(bl.length(), buffer + get_offset(addr)); - return Segment::write_ertr::now(); + return Segment::write_ertr::now().safe_then([] { + return seastar::sleep(std::chrono::milliseconds(1)); + }); } EphemeralSegmentManager::init_ertr::future<> EphemeralSegmentManager::init() @@ -113,7 +121,9 @@ EphemeralSegmentManager::init_ertr::future<> EphemeralSegmentManager::init() buffer = (char*)addr; ::memset(buffer, 0, config.size); - return init_ertr::now(); + return init_ertr::now().safe_then([] { + return seastar::sleep(std::chrono::milliseconds(1)); + }); } EphemeralSegmentManager::~EphemeralSegmentManager() @@ -169,7 +179,9 @@ SegmentManager::release_ertr::future<> EphemeralSegmentManager::release( ::memset(buffer + get_offset({id, 0}), 0, config.segment_size); segment_state[id] = segment_state_t::EMPTY; - return release_ertr::now(); + return release_ertr::now().safe_then([] { + return seastar::sleep(std::chrono::milliseconds(1)); + }); } SegmentManager::read_ertr::future<> EphemeralSegmentManager::read( @@ -204,7 +216,9 @@ SegmentManager::read_ertr::future<> EphemeralSegmentManager::read( len, bl.begin().crc32c(len, 1)); - return read_ertr::now(); + return read_ertr::now().safe_then([] { + return seastar::sleep(std::chrono::milliseconds(1)); + }); } } -- 2.39.5