This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Hurd".
The branch, master has been updated
via 5eda2dbdb1a3eaae70178df55b7e3d7508b15c9b (commit)
from 2ccdc970f7d83a4a5fc3c2c6e89f94a10e36d2ac (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 5eda2dbdb1a3eaae70178df55b7e3d7508b15c9b
Author: Milos Nikic <[email protected]>
Date: Mon Aug 25 21:38:08 2025 +0100
libpager, ext2fs: add bulk page write support
Introduce a new pager_write_pages() entry point, allowing filesystems
to implement multi-page writes in one call. libpager will attempt to
coalesce contiguous dirty pages and call this bulk interface; if it is
unsupported or only partially completes, the remaining pages are
handled by the existing per-page path.
ext2fs now provides file_pager_write_pages(), implemented using a
small chunked write loop (currently 2 blocks per chunk) under
alloc_lock. This reduces lock/unlock cycles, improves batching of
store_write() calls, and avoids starvation by yielding between chunks.
Other filesystems may continue using pager_write_page() unchanged.
Test write 128 MiB dirty file:
Before this change:
store_write calls: 32,874; avg: 4,096 B
After this change (coalesced runs, cap=128):
store_write calls: 1,300; avg 103 KiB
(~25 times fewer calls, ~25 times larger writes)
-----------------------------------------------------------------------
Summary of changes:
doc/hurd.texi | 8 ++
ext2fs/pager.c | 147 ++++++++++++++++++++++
libpager/Makefile | 2 +-
libpager/data-return.c | 53 ++++++--
libtrivfs/io-modes-off.c => libpager/pager-bulk.c | 31 ++---
libpager/pager.h | 10 ++
6 files changed, 229 insertions(+), 22 deletions(-)
copy libtrivfs/io-modes-off.c => libpager/pager-bulk.c (52%)
hooks/post-receive
--
Hurd