Messages in this thread | | | From | "Huang, Ying" <> | Subject | Re: [PATCH v2 1/2] mm: migrate: Fix return value if all subpages of THPs are migrated successfully | Date | Mon, 24 Oct 2022 09:56:22 +0800 |
| |
Yang Shi <shy828301@gmail.com> writes:
> On Fri, Oct 21, 2022 at 11:41 AM Andrew Morton > <akpm@linux-foundation.org> wrote: >> >> On Fri, 21 Oct 2022 18:16:23 +0800 Baolin Wang <baolin.wang@linux.alibaba.com> wrote: >> >> > When THP migration, if THPs are split and all subpages are migrated successfully >> > , the migrate_pages() will still return the number of THP that were not migrated. >> > That will confuse the callers of migrate_pages(), for example, which will make >> > the longterm pinning failed though all pages are migrated successfully. >> > >> > Thus we should return 0 to indicate all pages are migrated in this case. >> > >> >> This had me puzzled for a while. I think this wording is clearer? >> >> : During THP migration, if THPs are not migrated but they are split and all >> : subpages are migrated successfully, migrate_pages() will still return the >> : number of THP pages that were not migrated. This will confuse the callers >> : of migrate_pages(). For example, the longterm pinning will failed though >> : all pages are migrated successfully. >> : >> : Thus we should return 0 to indicate that all pages are migrated in this >> : case. >> >> This is a fairly longstanding problem? No Fixes: we can identify? > > It doesn't seem like a long standing issue. It seems like commit > b5bade978e9b ("mm: migrate: fix the return value of migrate_pages()") > fixed one problem, but introduced this new one IIUC. > > Before this commit, the code did: > > nr_failed += retry + thp_retry; > rc = nr_failed; > > But retry and thp_retry were actually reset for each retry until the > last one. So as long as there is no permanent migration failure and > THP split failure, nr_failed should be 0 IIUC. TBH the code is a > little bit hard to follow, please correct me if I'm wrong.
I think that you are correct. We can added
Fixes: b5bade978e9b ("mm: migrate: fix the return value of migrate_pages()")
>> Did you consider the desirability of a -stable backport?
I think this can be backport to -stable.
Best Regards, Huang, Ying
| |