From ac4c629898f51ad560001d81557b9ad0e57549c6 Mon Sep 17 00:00:00 2001 From: Matthew Jackson Date: Sun, 17 May 2026 09:06:34 -0700 Subject: [PATCH] iter10: chunk back to 32 MiB iter9 (64 MiB on top of no-P2.5) regressed -1.2 from iter8. 32 MiB remains best on the no-P2.5 path. Net iter10 = iter8 minus DONTNEED (via the prior commit re-applying 41d4c6b). --- src/io/writeback_file/mod.rs | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/src/io/writeback_file/mod.rs b/src/io/writeback_file/mod.rs index b77bc3e..ff12d93 100644 --- a/src/io/writeback_file/mod.rs +++ b/src/io/writeback_file/mod.rs @@ -73,14 +73,8 @@ use std::path::Path; use super::writeback::WritebackPipeline; /// Granularity at which the Linux writeback pipeline issues -/// `sync_file_range` / `posix_fadvise(DONTNEED)` pairs. -/// -/// iter9 (2026-05-17): 32 → 64 MiB on top of iter8 (Phase 2.5 -/// disabled). Without Phase 2.5's writer thread, WAIT_AFTER blocks -/// the mux thread directly. Bigger chunks = fewer WAIT_AFTER calls -/// = less mux-thread blocking. iter8 mean was 28.7 with 32 MiB; aim -/// to clear the 30 floor by halving WAIT_AFTER frequency. -const WRITEBACK_CHUNK_BYTES: u64 = 64 * 1024 * 1024; +/// `sync_file_range` pairs. 32 MiB best-tested with iter8 (28.7 mean). +const WRITEBACK_CHUNK_BYTES: u64 = 32 * 1024 * 1024; pub(crate) struct WritebackFile { file: File,