Re: [PATCH v3 0/5] add persistent huge zero folio support
From: Pankaj Raghav (Samsung) <hidden>
Date: 2025-08-11 10:12:33
Also in:
linux-fsdevel, linux-mm, lkml
From: Pankaj Raghav (Samsung) <hidden>
Date: 2025-08-11 10:12:33
Also in:
linux-fsdevel, linux-mm, lkml
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. -- Pankaj