Messages in this thread | | | From | "Huang, Ying" <> | Subject | Re: [PATCH] mm/migrate: Continue to migrate for small pages | Date | Sun, 29 Jan 2023 11:01:31 +0800 |
| |
Chen Wandun <chenwandun@huawei.com> writes:
> migrate_hugetlbs returns -ENOMEM when no enough huge page, > however maybe there are still free small pages, so continue > to migrate for small pages.
Better to replace "page" with "folio", and "small" with "non-hugetlb".
> 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.
There may be free non-hugetlb folios available, 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.
This can be moved to patch description.
> + */ > + if (rc_gather < 0 && rc_gather != -ENOMEM) > goto out; > again: > nr_pages = 0;
Best Regards, Huang, Ying
| |