Thread (22 messages) 22 messages, 6 authors, 2025-08-18

Re: [PATCH v3 0/5] add persistent huge zero folio support

From: Ritesh Harjani (IBM) <ritesh.list@gmail.com>
Date: 2025-08-12 03:57:27
Also in: linux-fsdevel, linux-mm, lkml

"Pankaj Raghav (Samsung)" [off-list ref] writes:
quoted
quoted
quoted
quoted
Add a config option PERSISTENT_HUGE_ZERO_FOLIO that will always allocate
the huge_zero_folio, and disable the shrinker so that huge_zero_folio is
never freed.
This makes using the huge_zero_folio without having to pass any mm struct and does
not tie the lifetime of the zero folio to anything, making it a drop-in
replacement for ZERO_PAGE.

I have converted blkdev_issue_zero_pages() as an example as a part of
this series. I also noticed close to 4% performance improvement just by
replacing ZERO_PAGE with persistent huge_zero_folio.

I will send patches to individual subsystems using the huge_zero_folio
once this gets upstreamed.

Looking forward to some feedback.
Why does it need to be compile-time? Maybe whoever needs huge zero page
would just call get_huge_zero_page()/folio() on initialization to get it
pinned?
That's what v2 did, and this way here is cleaner.
Sorry, RFC v2 I think. It got a bit confusing with series names/versions.
Another reason we made it a compile time config is because not all
machines would want a PMD sized folio just for zeroing. For example,
Dave Hansen told in one of the early revisions that a small x86 VM would
not want this.

So it is a default N, and it will be an opt-in.
I looked over the patches and I liked this design. This is much simpler
and cleaner compared to the initial version. 

Thanks!
-ritesh
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help