]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
crimson/.../ephemeral: remove unnecessary zero fill in anonymous mmap
authorChanyoung Park <chaney.p@kakaoenterprise.com>
Sun, 10 Aug 2025 04:38:47 +0000 (04:38 +0000)
committerChanyoung Park <chaney.p@kakaoenterprise.com>
Sun, 10 Aug 2025 06:10:04 +0000 (06:10 +0000)
Anonymous mmap is zero-filled on first access by the kernel, so an
explicit memset(0) is redundant and has been removed.

Signed-off-by: Chanyoung Park <chaney.p@kakaoenterprise.com>
src/crimson/os/seastore/segment_manager/ephemeral.cc

index bdd97e88733de2c6a929e5c28607d09a7f1e97ce..858870c75cc03738c2c1ca4702a5194482d79630 100644 (file)
@@ -177,12 +177,9 @@ EphemeralSegmentManager::init_ertr::future<> EphemeralSegmentManager::init()
     return crimson::ct_error::invarg::make();
   }
 
-  void* addr = ::mmap(
-    nullptr,
-    config.size,
-    PROT_READ | PROT_WRITE, MAP_SHARED | MAP_ANONYMOUS,
-    -1,
-    0);
+  // memset 0 is not needed: anonymous mapping is zero-filled
+  void* addr = ::mmap(nullptr, config.size, PROT_READ | PROT_WRITE,
+                      MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
 
   segment_state.resize(config.size / config.segment_size, segment_state_t::EMPTY);
 
@@ -191,7 +188,6 @@ EphemeralSegmentManager::init_ertr::future<> EphemeralSegmentManager::init()
 
   buffer = (char*)addr;
 
-  ::memset(buffer, 0, config.size);
   return init_ertr::now().safe_then([] {
     return seastar::sleep(std::chrono::milliseconds(1));
   });