Re: [PATCH 01/19] mm, thp: drop FOLL_SPLIT

From: Naoya Horiguchi
Date: Mon Nov 24 2014 - 22:02:24 EST


On Wed, Nov 05, 2014 at 04:49:36PM +0200, Kirill A. Shutemov wrote:
> FOLL_SPLIT is used only in two places: migration and s390.
>
> Let's replace it with explicit split and remove FOLL_SPLIT.
>
> Signed-off-by: Kirill A. Shutemov <kirill.shutemov@xxxxxxxxxxxxxxx>
> ---
...
> @@ -1246,6 +1246,11 @@ static int do_move_page_to_node_array(struct mm_struct *mm,
> if (!page)
> goto set_status;
>
> + if (PageTransHuge(page) && split_huge_page(page)) {
> + err = -EBUSY;
> + goto set_status;
> + }
> +

This check makes split_huge_page() be called for hugetlb pages, which
triggers BUG_ON. So could you do this after if (PageHuge) block below?
And I think that we have "Node already in the right place" check afterward,
so I hope that moving down this check also helps us reduce thp splitting.

Thanks,
Naoya Horiguchi

> /* Use PageReserved to check for zero page */
> if (PageReserved(page))
> goto put_and_set;--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/