Messages in this thread | | | Subject | Re: Freeing HugeTLB page into buddy allocator | From | Anshuman Khandual <> | Date | Thu, 27 Apr 2017 16:36:20 +0530 |
| |
On 04/27/2017 11:24 AM, Naoya Horiguchi wrote: > On Tue, Apr 25, 2017 at 02:27:27PM +0530, Anshuman Khandual wrote: >> Hello Jianguo, >> >> In the commit a49ecbcd7b0d5a1cda, it talks about HugeTLB page being >> freed into buddy allocator instead of hugepage_freelists. But if >> I look the code closely for the function unmap_and_move_huge_page() >> it only calls putback_active_hugepage() which puts the page into the >> huge page active list to free up the source HugeTLB page after any >> successful migration. I might be missing something here, so can you >> please point me where we release the HugeTLB page into buddy allocator >> directly during migration ? > > Hi Anshuman, > > As stated in the patch description, source hugetlb page is freed after > successful migration if overcommit is configured. > > The call chain is like below: > > soft_offline_huge_page > migrate_pages > unmap_and_move_huge_page > putback_active_hugepage(hpage) > put_page // refcount is down to 0 > __put_page > __put_compound_page > free_huge_page > if (h->surplus_huge_pages_node[nid]) > update_and_free_page > __free_pages > > So the inline comment > > + /* overcommit hugetlb page will be freed to buddy */ > > might be confusing because at this point the overcommit hugetlb page was > already freed to buddy. > > I hope this will help you.
Surely does. Thanks Naoya.
| |