Re: [PATCH 7/7] migrate_pages(): fix failure counting for retry

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

 





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;

Otherwise,
Reviewed-by: Baolin Wang <baolin.wang@xxxxxxxxxxxxxxxxx>

  				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




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

  Powered by Linux