All of lore.kernel.org
 help / color / mirror / Atom feed
From: Baolin Wang <baolin.wang@linux.alibaba.com>
To: akpm@linux-foundation.org, rostedt@goodmis.org, mingo@redhat.com
Cc: ziy@nvidia.com, shy828301@gmail.com,
	baolin.wang@linux.alibaba.com, linux-mm@kvack.org,
	linux-kernel@vger.kernel.org
Subject: [RFC PATCH 2/3] mm: migrate: Correct the hugetlb migration stats
Date: Wed,  3 Nov 2021 18:51:15 +0800	[thread overview]
Message-ID: <c07ad378b6c7e67cba8d3eef1af786613386a042.1635936218.git.baolin.wang@linux.alibaba.com> (raw)
In-Reply-To: <cover.1635936218.git.baolin.wang@linux.alibaba.com>
In-Reply-To: <cover.1635936218.git.baolin.wang@linux.alibaba.com>

Correct the migration stats for hugetlb with using compound_nr() instead
of thp_nr_pages(), meanwhile change 'nr_failed_pages' to record the
number of normal pages failed to migrate, including THP and hugetlb,
and 'nr_succeeded' will record the number of normal pages migrated
successfully.

Signed-off-by: Baolin Wang <baolin.wang@linux.alibaba.com>
---
 mm/migrate.c | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

diff --git a/mm/migrate.c b/mm/migrate.c
index 00b8922..00e231c 100644
--- a/mm/migrate.c
+++ b/mm/migrate.c
@@ -1436,7 +1436,8 @@ static inline int try_split_thp(struct page *page, struct page **page2,
  * It is caller's responsibility to call putback_movable_pages() to return pages
  * to the LRU or free list only if ret != 0.
  *
- * Returns the number of {normal page, THP} that were not migrated, or an error code.
+ * Returns the number of {normal page, THP, hugetlb} that were not migrated,
+ * or an error code.
  */
 int migrate_pages(struct list_head *from, new_page_t get_new_page,
 		free_page_t put_new_page, unsigned long private,
@@ -1476,7 +1477,7 @@ int migrate_pages(struct list_head *from, new_page_t get_new_page,
 			 * during migration.
 			 */
 			is_thp = PageTransHuge(page) && !PageHuge(page);
-			nr_subpages = thp_nr_pages(page);
+			nr_subpages = compound_nr(page);
 			cond_resched();
 
 			if (PageHuge(page))
@@ -1523,6 +1524,7 @@ int migrate_pages(struct list_head *from, new_page_t get_new_page,
 				}
 
 				/* Hugetlb migration is unsupported */
+				nr_failed_pages++;
 				nr_failed++;
 				break;
 			case -ENOMEM:
@@ -1541,6 +1543,7 @@ int migrate_pages(struct list_head *from, new_page_t get_new_page,
 					nr_failed_pages += nr_subpages;
 					goto out;
 				}
+				nr_failed_pages += nr_subpages;
 				nr_failed++;
 				goto out;
 			case -EAGAIN:
@@ -1551,12 +1554,11 @@ int migrate_pages(struct list_head *from, new_page_t get_new_page,
 				retry++;
 				break;
 			case MIGRATEPAGE_SUCCESS:
+				nr_succeeded += nr_subpages;
 				if (is_thp) {
 					nr_thp_succeeded++;
-					nr_succeeded += nr_subpages;
 					break;
 				}
-				nr_succeeded++;
 				break;
 			default:
 				/*
@@ -1565,9 +1567,9 @@ int migrate_pages(struct list_head *from, new_page_t get_new_page,
 				 * removed from migration page list and not
 				 * retried in the next outer loop.
 				 */
+				nr_failed_pages += nr_subpages;
 				if (is_thp) {
 					nr_thp_failed++;
-					nr_failed_pages += nr_subpages;
 					break;
 				}
 				nr_failed++;
@@ -1576,7 +1578,6 @@ int migrate_pages(struct list_head *from, new_page_t get_new_page,
 		}
 	}
 	nr_failed += retry + thp_retry;
-	nr_failed_pages += nr_failed;
 	nr_thp_failed += thp_retry;
 	rc = nr_failed + nr_thp_failed;
 out:
-- 
1.8.3.1


  parent reply	other threads:[~2021-11-03 10:51 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-11-03 10:51 [RFC PATCH 0/3] Improve the migration stats Baolin Wang
2021-11-03 10:51 ` [RFC PATCH 1/3] mm: migrate: Fix the return value of migrate_pages() Baolin Wang
2021-11-04 15:33   ` Zi Yan
2021-11-05 10:17     ` Baolin Wang
2021-11-05 15:21       ` Zi Yan
2021-11-07  9:08         ` Baolin Wang
2021-11-03 10:51 ` Baolin Wang [this message]
2021-11-04 15:35   ` [RFC PATCH 2/3] mm: migrate: Correct the hugetlb migration stats Zi Yan
2021-11-03 10:51 ` [RFC PATCH 3/3] mm: compaction: Fix the migration stats in trace_mm_compaction_migratepages() Baolin Wang
2021-11-03 13:42   ` Steven Rostedt
2021-11-04  9:18     ` Baolin Wang

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=c07ad378b6c7e67cba8d3eef1af786613386a042.1635936218.git.baolin.wang@linux.alibaba.com \
    --to=baolin.wang@linux.alibaba.com \
    --cc=akpm@linux-foundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=mingo@redhat.com \
    --cc=rostedt@goodmis.org \
    --cc=shy828301@gmail.com \
    --cc=ziy@nvidia.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.