Skip to content

Commit

Permalink
migrate_pages(): remove unnecessary list_safe_reset_next()
Browse files Browse the repository at this point in the history
Before commit b5bade9 ("mm: migrate: fix the return value of
migrate_pages()"), the tail pages of THP will be put in the "from"
list directly.  So one of the loop cursors (page2) needs to be reset,
as is done in try_split_thp() via list_safe_reset_next().  But after
the commit, the tail pages of THP will be put in a dedicated
list (thp_split_pages).  That is, the "from" list will not be changed
during splitting.  So, it's unnecessary to call list_safe_reset_next()
anymore.

This is a code cleanup, no functionality changes are expected.

Link: https://lkml.kernel.org/r/20220817081408.513338-3-ying.huang@intel.com
Signed-off-by: "Huang, Ying" <ying.huang@intel.com>
Reviewed-by: Baolin Wang <baolin.wang@linux.alibaba.com>
Reviewed-by: Oscar Salvador <osalvador@suse.de>
Cc: Zi Yan <ziy@nvidia.com>
Cc: Yang Shi <shy828301@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
  • Loading branch information
Huang Ying authored and Andrew Morton committed Sep 27, 2022
1 parent a7504ed commit 9c62ff0
Showing 1 changed file with 5 additions and 8 deletions.
13 changes: 5 additions & 8 deletions mm/migrate.c
Original file line number Diff line number Diff line change
Expand Up @@ -1369,16 +1369,13 @@ static int unmap_and_move_huge_page(new_page_t get_new_page,
return rc;
}

static inline int try_split_thp(struct page *page, struct page **page2,
struct list_head *from)
static inline int try_split_thp(struct page *page, struct list_head *split_pages)
{
int rc = 0;
int rc;

lock_page(page);
rc = split_huge_page_to_list(page, from);
rc = split_huge_page_to_list(page, split_pages);
unlock_page(page);
if (!rc)
list_safe_reset_next(page, *page2, lru);

return rc;
}
Expand Down Expand Up @@ -1482,7 +1479,7 @@ int migrate_pages(struct list_head *from, new_page_t get_new_page,
/* THP migration is unsupported */
if (is_thp) {
nr_thp_failed++;
if (!try_split_thp(page, &page2, &thp_split_pages)) {
if (!try_split_thp(page, &thp_split_pages)) {
nr_thp_split++;
goto retry;
}
Expand All @@ -1501,7 +1498,7 @@ int migrate_pages(struct list_head *from, new_page_t get_new_page,
*/
if (is_thp && !nosplit) {
nr_thp_failed++;
if (!try_split_thp(page, &page2, &thp_split_pages)) {
if (!try_split_thp(page, &thp_split_pages)) {
nr_thp_split++;
goto retry;
}
Expand Down

0 comments on commit 9c62ff0

Please sign in to comment.