On Fri, Sep 13, 2024 at 02:49:02PM +0530, Dev Jain wrote: > We use pte_range_none() to determine whether contiguous PTEs are empty > for an mTHP allocation. Instead of iterating the while loop for every > order, use some information, which is the first set PTE found, from the > previous iteration, to eliminate some cases. The key to understanding > the correctness of the patch is that the ranges we want to examine > form a strictly decreasing sequence of nested intervals. This is a lot more complicated. Do you have any numbers that indicate that it's faster? Yes, it's fewer memory references, but you've gone from a simple linear scan that's easy to prefetch to an exponential scan that might confuse the prefetchers.