On 02/12/2024 21:58, Mateusz Guzik wrote: > On Mon, Dec 02, 2024 at 08:20:58PM +0000, Frank van der Linden wrote: >> Fresh hugetlb pages are zeroed out when they are faulted in, >> just like with all other page types. This can take up a good >> amount of time for larger page sizes (e.g. around 40 >> milliseconds for a 1G page on a recent AMD-based system). >> >> This normally isn't a problem, since hugetlb pages are typically >> mapped by the application for a long time, and the initial >> delay when touching them isn't much of an issue. >> >> However, there are some use cases where a large number of hugetlb >> pages are touched when an application (such as a VM backed by these >> pages) starts. For 256 1G pages and 40ms per page, this would take >> 10 seconds, a noticeable delay. > > The current huge page zeroing code is not that great to begin with. > > There was a patchset posted some time ago to remedy at least some of it: > https://lore.kernel.org/all/20230830184958.2333078-1-ankur.a.arora@xxxxxxxxxx/ > > but it apparently fell through the cracks. > It didn't fell through the cracks for sure Just had a detour into preempt=auto before resuming the main work. But that seems to be done in the last merge window with the lazy preempt stuff. I think Ankur was planning on following that series above soon-ish. Adding him here, such that he keeps me honest :)