]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
crimson/os/seastore/.../ephemeral: introduce pauses for testing
authorSamuel Just <sjust@redhat.com>
Sat, 31 Oct 2020 00:03:33 +0000 (17:03 -0700)
committerSamuel Just <sjust@redhat.com>
Fri, 11 Dec 2020 21:31:39 +0000 (13:31 -0800)
Signed-off-by: Samuel Just <sjust@redhat.com>
src/crimson/os/seastore/segment_manager/ephemeral.cc

index 952cf2c678c293527769eaf421ce72104e670fd3..b58e842bb144effb76808a3c28b12f97457262e4 100644 (file)
@@ -4,6 +4,8 @@
 #include <sys/mman.h>
 #include <string.h>
 
+#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));
+  });
 }
 
 }