From ce2c913d13a4c2b44d1bbe0cf536ba95d6bcbaa0 Mon Sep 17 00:00:00 2001 From: Chanyoung Park Date: Sun, 10 Aug 2025 04:38:47 +0000 Subject: [PATCH] crimson/.../ephemeral: remove unnecessary zero fill in anonymous mmap 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 --- src/crimson/os/seastore/segment_manager/ephemeral.cc | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/src/crimson/os/seastore/segment_manager/ephemeral.cc b/src/crimson/os/seastore/segment_manager/ephemeral.cc index bdd97e88733de..858870c75cc03 100644 --- a/src/crimson/os/seastore/segment_manager/ephemeral.cc +++ b/src/crimson/os/seastore/segment_manager/ephemeral.cc @@ -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)); }); -- 2.39.5