The patch titled Subject: include/linux/hugetlb.h: add synchronization information for new hugetlb specific flags has been added to the -mm tree. Its filename is include-linux-hugetlbh-add-synchronization-information-for-new-hugetlb-specific-flags.patch This patch should soon appear at https://ozlabs.org/~akpm/mmots/broken-out/include-linux-hugetlbh-add-synchronization-information-for-new-hugetlb-specific-flags.patch and later at https://ozlabs.org/~akpm/mmotm/broken-out/include-linux-hugetlbh-add-synchronization-information-for-new-hugetlb-specific-flags.patch Before you just go and hit "reply", please: a) Consider who else should be cc'ed b) Prefer to cc a suitable mailing list as well c) Ideally: find the original patch on the mailing list and do a reply-to-all to that, adding suitable additional cc's *** Remember to use Documentation/process/submit-checklist.rst when testing your code *** The -mm tree is included into linux-next and is updated there every 3-4 working days ------------------------------------------------------ From: Mike Kravetz <mike.kravetz@xxxxxxxxxx> Subject: include/linux/hugetlb.h: add synchronization information for new hugetlb specific flags Add comments, no functional change. Link: https://lkml.kernel.org/r/62a80585-2a73-10cc-4a2d-5721540d4ad2@xxxxxxxxxx Signed-off-by: Mike Kravetz <mike.kravetz@xxxxxxxxxx> Acked-by: Michal Hocko <mhocko@xxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- include/linux/hugetlb.h | 10 ++++++++++ 1 file changed, 10 insertions(+) --- a/include/linux/hugetlb.h~include-linux-hugetlbh-add-synchronization-information-for-new-hugetlb-specific-flags +++ a/include/linux/hugetlb.h @@ -480,14 +480,24 @@ unsigned long hugetlb_get_unmapped_area( * HPG_restore_reserve - Set when a hugetlb page consumes a reservation at * allocation time. Cleared when page is fully instantiated. Free * routine checks flag to restore a reservation on error paths. + * Synchronization: Examined or modified by code that knows it has + * the only reference to page. i.e. After allocation but before use + * or when the page is being freed. * HPG_migratable - Set after a newly allocated page is added to the page * cache and/or page tables. Indicates the page is a candidate for * migration. + * Synchronization: Initially set after new page allocation with no + * locking. When examined and modified during migration processing + * (isolate, migrate, putback) the hugetlb_lock is held. * HPG_temporary - - Set on a page that is temporarily allocated from the buddy * allocator. Typically used for migration target pages when no pages * are available in the pool. The hugetlb free page path will * immediately free pages with this flag set to the buddy allocator. + * Synchronization: Can be set after huge page allocation from buddy when + * code knows it has only reference. All other examinations and + * modifications require hugetlb_lock. * HPG_freed - Set when page is on the free lists. + * Synchronization: hugetlb_lock held for examination and modification. */ enum hugetlb_page_flags { HPG_restore_reserve = 0, _ Patches currently in -mm which might be from mike.kravetz@xxxxxxxxxx are hugetlb-fix-update_and_free_page-contig-page-struct-assumption.patch hugetlb-fix-copy_huge_page_from_user-contig-page-struct-assumption.patch hugetlb-use-pageprivate-for-hugetlb-specific-page-flags.patch hugetlb-use-pageprivate-for-hugetlb-specific-page-flags-fix.patch hugetlb-convert-page_huge_active-hpagemigratable-flag.patch hugetlb-convert-pagehugetemporary-to-hpagetemporary-flag.patch hugetlb-convert-pagehugefreed-to-hpagefreed-flag.patch include-linux-hugetlbh-add-synchronization-information-for-new-hugetlb-specific-flags.patch mm-hugetlb-change-hugetlb_reserve_pages-to-type-bool.patch hugetlbfs-remove-special-hugetlbfs_set_page_dirty.patch