Re: [PATCH v2 2/7] mm/migrate: correct failure handling if !hugepage_migration_support()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Joonsoo,
On Mon, Dec 09, 2013 at 06:10:43PM +0900, Joonsoo Kim wrote:
>We should remove the page from the list if we fail without ENOSYS,
>since migrate_pages() consider error cases except -ENOMEM and -EAGAIN
>as permanent failure and it assumes that the page would be removed from
>the list. Without this patch, we could overcount number of failure.
>
>In addition, we should put back the new hugepage if
>!hugepage_migration_support(). If not, we would leak hugepage memory.
>
>Signed-off-by: Joonsoo Kim <iamjoonsoo.kim@xxxxxxx>
>
>diff --git a/mm/migrate.c b/mm/migrate.c
>index c6ac87a..b1cfd01 100644
>--- a/mm/migrate.c
>+++ b/mm/migrate.c
>@@ -1011,7 +1011,7 @@ static int unmap_and_move_huge_page(new_page_t get_new_page,
> {
> 	int rc = 0;
> 	int *result = NULL;
>-	struct page *new_hpage = get_new_page(hpage, private, &result);
>+	struct page *new_hpage;
> 	struct anon_vma *anon_vma = NULL;
>
> 	/*
>@@ -1021,9 +1021,12 @@ static int unmap_and_move_huge_page(new_page_t get_new_page,
> 	 * tables or check whether the hugepage is pmd-based or not before
> 	 * kicking migration.
> 	 */
>-	if (!hugepage_migration_support(page_hstate(hpage)))
>+	if (!hugepage_migration_support(page_hstate(hpage))) {
>+		putback_active_hugepage(hpage);
> 		return -ENOSYS;

The memory hotplug(do_migrate_range) and hwpoison(soft_offline_huge_page) callsets both 
will call putback_movable_pages/putback_active_hugepage for -ENOSYS case.

Regards,
Wanpeng Li 

>+	}
>
>+	new_hpage = get_new_page(hpage, private, &result);
> 	if (!new_hpage)
> 		return -ENOMEM;
>
>-- 
>1.7.9.5
>
>--
>To unsubscribe, send a message with 'unsubscribe linux-mm' in
>the body to majordomo@xxxxxxxxx.  For more info on Linux MM,
>see: http://www.linux-mm.org/ .
>Don't email: <a href=mailto:"dont@xxxxxxxxx";> email@xxxxxxxxx </a>

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@xxxxxxxxx.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@xxxxxxxxx";> email@xxxxxxxxx </a>




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]