+43
−40
Loading
Make break_ksm() receive an address range and change break_ksm_pmd_entry() to perform a range-walk and return the address of the first ksm page found. This change allows break_ksm() to skip unmapped regions instead of iterating every page address. When unmerging large sparse VMAs, this significantly reduces runtime. In a benchmark unmerging a 32 TiB sparse virtual address space where only one page was populated, the runtime dropped from 9 minutes to less then 5 seconds. Link: https://lkml.kernel.org/r/20251105184912.186329-3-pedrodemargomes@gmail.com Signed-off-by:Pedro Demarchi Gomes <pedrodemargomes@gmail.com> Suggested-by:
David Hildenbrand (Red Hat) <david@kernel.org> Acked-by:
David Hildenbrand (Red Hat) <david@kernel.org> Signed-off-by:
Andrew Morton <akpm@linux-foundation.org>