On 08/11/16 10:31, Naoya Horiguchi wrote:
> This patch enables thp migration for soft offline.
> 
> Signed-off-by: Naoya Horiguchi <[email protected]>
> ---
>  mm/memory-failure.c | 31 ++++++++++++-------------------
>  1 file changed, 12 insertions(+), 19 deletions(-)
> 
> diff --git v4.9-rc2-mmotm-2016-10-27-18-27/mm/memory-failure.c 
> v4.9-rc2-mmotm-2016-10-27-18-27_patched/mm/memory-failure.c
> index 19e796d..6cc8157 100644
> --- v4.9-rc2-mmotm-2016-10-27-18-27/mm/memory-failure.c
> +++ v4.9-rc2-mmotm-2016-10-27-18-27_patched/mm/memory-failure.c
> @@ -1485,7 +1485,17 @@ static struct page *new_page(struct page *p, unsigned 
> long private, int **x)
>       if (PageHuge(p))
>               return alloc_huge_page_node(page_hstate(compound_head(p)),
>                                                  nid);
> -     else
> +     else if (thp_migration_supported() && PageTransHuge(p)) {
> +             struct page *thp;
> +
> +             thp = alloc_pages_node(nid,
> +                     (GFP_TRANSHUGE | __GFP_THISNODE) & ~__GFP_RECLAIM,
> +                     HPAGE_PMD_ORDER);
> +             if (!thp)
> +                     return NULL;

Just wondering if new_page() fails, migration of that entry fails. Do we then
split and migrate? I guess this applies to THP migration in general.

Balbir Singh

Reply via email to