On Mon, Sep 16, 2024 at 9:25 PM Matthew Wilcox <willy@xxxxxxxxxxxxx> wrote: > > 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. +1 I'm not sure if multiple mthp sizes will be enabled for common cases ;) If not, this could be a bit more complicated, IMO. @Barry, could you share whether OPPO typically uses multiple mthp sizes in their scenarios? Thanks, Lance