Baolin Wang <baolin.wang@xxxxxxxxxxxxxxxxx> writes: > On 6/27/2022 10:25 AM, Huang Ying wrote: >> After 10 retries, we will give up and the remaining pages will be >> counted as failure in nr_failed and nr_thp_failed. We should count >> the failure in nr_failed_pages too. This is done in this patch. >> Signed-off-by: "Huang, Ying" <ying.huang@xxxxxxxxx> >> Fixes: 5984fabb6e82 ("mm: move_pages: report the number of non-attempted pages") >> Cc: Baolin Wang <baolin.wang@xxxxxxxxxxxxxxxxx> >> Cc: Zi Yan <ziy@xxxxxxxxxx> >> Cc: Yang Shi <shy828301@xxxxxxxxx> >> --- >> mm/migrate.c | 5 +++++ >> 1 file changed, 5 insertions(+) >> diff --git a/mm/migrate.c b/mm/migrate.c >> index 70a0e1f34c03..e42bd409d3aa 100644 >> --- a/mm/migrate.c >> +++ b/mm/migrate.c >> @@ -1344,6 +1344,7 @@ int migrate_pages(struct list_head *from, new_page_t get_new_page, >> int thp_retry = 1; >> int nr_failed = 0; >> int nr_failed_pages = 0; >> + int nr_retry_pages = 0; >> int nr_succeeded = 0; >> int nr_thp_succeeded = 0; >> int nr_thp_failed = 0; >> @@ -1364,6 +1365,7 @@ int migrate_pages(struct list_head *from, new_page_t get_new_page, >> for (pass = 0; pass < 10 && (retry || thp_retry); pass++) { >> retry = 0; >> thp_retry = 0; >> + nr_retry_pages = 0; >> list_for_each_entry_safe(page, page2, from, lru) { >> /* >> @@ -1449,12 +1451,14 @@ int migrate_pages(struct list_head *from, new_page_t get_new_page, >> nr_thp_failed += thp_retry; >> if (!no_subpage_counting) >> nr_failed += retry; >> + nr_failed_pages += nr_retry_pages; > > Can you move this a little forward to update 'nr_failed_pages' in one > place, which seems more readable? > nr_failed_pages += nr_subpages + nr_retry_pages; Sure. Will do this in the next version! > Otherwise, > Reviewed-by: Baolin Wang <baolin.wang@xxxxxxxxxxxxxxxxx> Thanks! Best Regards, Huang, Ying > >> goto out; >> case -EAGAIN: >> if (is_thp) >> thp_retry++; >> else >> retry++; >> + nr_retry_pages += nr_subpages; >> break; >> case MIGRATEPAGE_SUCCESS: >> nr_succeeded += nr_subpages; >> @@ -1481,6 +1485,7 @@ int migrate_pages(struct list_head *from, new_page_t get_new_page, >> if (!no_subpage_counting) >> nr_failed += retry; >> nr_thp_failed += thp_retry; >> + nr_failed_pages += nr_retry_pages; >> /* >> * Try to migrate subpages of fail-to-migrate THPs, no nr_failed >> * counting in this round, since all subpages of a THP is counted