> On 12/22/20 11:59 AM, Alexander Duyck wrote: > > On Mon, Dec 21, 2020 at 11:47 PM Liang Li <liliang.opensource@xxxxxxxxx> wrote: > >> + > >> + if (huge_page_order(h) > MAX_ORDER) > >> + budget = HUGEPAGE_REPORTING_CAPACITY; > >> + else > >> + budget = HUGEPAGE_REPORTING_CAPACITY * 32; > > > > Wouldn't huge_page_order always be more than MAX_ORDER? Seems like we > > don't even really need budget since this should probably be pulling > > out no more than one hugepage at a time. > > On standard x86_64 configs, 2MB huge pages are of order 9 < MAX_ORDER (11). > What is important for hugetlb is the largest order that can be allocated > from buddy. Anything bigger is considered a gigantic page and has to be > allocated differently. > > If the code above is trying to distinguish between huge and gigantic pages, > it is off by 1. The largest order that can be allocated from the buddy is > (MAX_ORDER - 1). So, the check should be '>='. > > -- > Mike Kravetz Yes, you're right! thanks Liang