Messages in this thread Patch in this message | | | Date | Fri, 24 Jun 2022 17:45:50 +0800 | Subject | Re: [PATCH 4/7] migrate_pages(): fix failure counting for THP subpages retrying | From | Baolin Wang <> |
| |
On 6/24/2022 10:53 AM, Huang Ying wrote: > If THP is failed to be migrated for -ENOSYS and -ENOMEM, the THP will > be split into thp_split_pages, and after other pages are migrated, > pages in thp_split_pages will be migrated with no_subpage_counting == > true, because its failure have been counted already. If some pages in > thp_split_pages are retried during migration, we should not count > their failure if no_subpage_counting == true too. This is done this > patch to fix the failure counting for THP subpages retrying.
Good catch. Totally agree with you. It seems we can move the condition into -EAGAIN case like other cases did?
diff --git a/mm/migrate.c b/mm/migrate.c index 1ece23d80bc4..491c2d07402b 100644 --- a/mm/migrate.c +++ b/mm/migrate.c @@ -1463,7 +1463,7 @@ int migrate_pages(struct list_head *from, new_page_t get_new_page, case -EAGAIN: if (is_thp) thp_retry++; - else + else if (!no_subpage_counting) retry++; break;
Anyway this patch looks good to me. Reviewed-by: Baolin Wang <baolin.wang@linux.alibaba.com> > > Signed-off-by: "Huang, Ying" <ying.huang@intel.com> > Fixes: 5984fabb6e82 ("mm: move_pages: report the number of non-attempted pages") > Cc: Baolin Wang <baolin.wang@linux.alibaba.com> > Cc: Zi Yan <ziy@nvidia.com> > Cc: Yang Shi <shy828301@gmail.com> > --- > mm/migrate.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/mm/migrate.c b/mm/migrate.c > index 542533e4e3cf..61dab3025a1d 100644 > --- a/mm/migrate.c > +++ b/mm/migrate.c > @@ -1477,7 +1477,8 @@ int migrate_pages(struct list_head *from, new_page_t get_new_page, > } > } > } > - nr_failed += retry; > + if (!no_subpage_counting) > + nr_failed += retry; > nr_thp_failed += thp_retry; > /* > * Try to migrate subpages of fail-to-migrate THPs, no nr_failed
| |