Commit 851ae642 authored by Huang Ying's avatar Huang Ying Committed by Andrew Morton

migrate_pages_batch: fix statistics for longterm pin retry

In commit fd4a7ac3 ("mm: migrate: try again if THP split is failed due
to page refcnt"), if the THP splitting fails due to page reference count,
we will retry to improve migration successful rate.  But the failed
splitting is counted as migration failure and migration retry, which will
cause duplicated failure counting.  So, in this patch, this is fixed via
undoing the failure counting if we decide to retry.  The patch is tested
via failure injection.

Link: https://lkml.kernel.org/r/20230416235929.1040194-1-ying.huang@intel.com
Fixes: fd4a7ac3 ("mm: migrate: try again if THP split is failed due to page refcnt")
Signed-off-by: default avatar"Huang, Ying" <ying.huang@intel.com>
Reviewed-by: default avatarBaolin Wang <baolin.wang@linux.alibaba.com>
Cc: Alistair Popple <apopple@nvidia.com>
Cc: David Hildenbrand <david@redhat.com>
Cc: Yang Shi <shy828301@gmail.com>
Cc: Zi Yan <ziy@nvidia.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
parent 686ea6e6
...@@ -1710,6 +1710,9 @@ static int migrate_pages_batch(struct list_head *from, new_page_t get_new_page, ...@@ -1710,6 +1710,9 @@ static int migrate_pages_batch(struct list_head *from, new_page_t get_new_page,
large_retry++; large_retry++;
thp_retry += is_thp; thp_retry += is_thp;
nr_retry_pages += nr_pages; nr_retry_pages += nr_pages;
/* Undo duplicated failure counting. */
nr_large_failed--;
stats->nr_thp_failed -= is_thp;
break; break;
} }
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment