Messages in this thread Patch in this message |  | | From | Chen Wandun <> | Subject | [PATCH] mm/migrate: Continue to migrate for small pages | Date | Sun, 29 Jan 2023 10:54:04 +0800 |
| |
migrate_hugetlbs returns -ENOMEM when no enough huge page, however maybe there are still free small pages, so continue to migrate for small pages.
Signed-off-by: Chen Wandun <chenwandun@huawei.com> --- mm/migrate.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/mm/migrate.c b/mm/migrate.c index b971edbf32fc..c9d0d2058036 100644 --- a/mm/migrate.c +++ b/mm/migrate.c @@ -1939,7 +1939,12 @@ int migrate_pages(struct list_head *from, new_page_t get_new_page, rc_gather = migrate_hugetlbs(from, get_new_page, put_new_page, private, mode, reason, &stats, &ret_folios); - if (rc_gather < 0) + /* Maybe there are free small pages, continue to migrate. + * Nowdays the only negtive return value of migrate_hugetlbs + * is -ENOMEM, keep compatible for coming negtive return + * value instead of ignore return value. + */ + if (rc_gather < 0 && rc_gather != -ENOMEM) goto out; again: nr_pages = 0; -- 2.25.1
|  |