2023-08-21 13:54:58

by Kefeng Wang

[permalink] [raw]
Subject: [PATCH v2 1/8] mm: migrate: remove PageTransHuge check in numamigrate_isolate_page()

Since we begin to convert the numa migration code to use folio, which
could let us to handle arbitrary sizes of folio, so drop assert that
we only support PageTransHuge page(PMD size) when order > 0.

Suggested-by: Matthew Wilcox (Oracle) <[email protected]>
Signed-off-by: Kefeng Wang <[email protected]>
---
mm/migrate.c | 2 --
1 file changed, 2 deletions(-)

diff --git a/mm/migrate.c b/mm/migrate.c
index b7fa020003f3..646d8ee7f102 100644
--- a/mm/migrate.c
+++ b/mm/migrate.c
@@ -2483,8 +2483,6 @@ static int numamigrate_isolate_page(pg_data_t *pgdat, struct page *page)
int nr_pages = thp_nr_pages(page);
int order = compound_order(page);

- VM_BUG_ON_PAGE(order && !PageTransHuge(page), page);
-
/* Do not migrate THP mapped by multiple processes */
if (PageTransHuge(page) && total_mapcount(page) > 1)
return 0;
--
2.41.0



2023-08-21 16:10:57

by Kefeng Wang

[permalink] [raw]
Subject: Re: [PATCH v2 1/8] mm: migrate: remove PageTransHuge check in numamigrate_isolate_page()



On 2023/8/21 20:52, Kefeng Wang wrote:
>
>
> On 2023/8/21 20:38, Matthew Wilcox wrote:
>> On Mon, Aug 21, 2023 at 07:56:17PM +0800, Kefeng Wang wrote:
>>> Since we begin to convert the numa migration code to use folio, which
>>> could let us to handle arbitrary sizes of folio, so drop assert that
>>> we only support PageTransHuge page(PMD size) when order > 0.
>>
>> Have you looked at the implementation of PageTransHuge()?  Your
>> description doesn't match what the code does.
>
> oops, not only PMD size...

Please ignore about reply, sorry,I misread, PageTransHuge return true
for head page, and BUG_ON for tail page, and compound_order(page) will
return 0 for tail page, so when begin to convert page to folio, we could
drop this line since it is not useful check for folio.

>
>>
>>> Suggested-by: Matthew Wilcox (Oracle) <[email protected]>
>>> Signed-off-by: Kefeng Wang <[email protected]>
>>> ---
>>>   mm/migrate.c | 2 --
>>>   1 file changed, 2 deletions(-)
>>>
>>> diff --git a/mm/migrate.c b/mm/migrate.c
>>> index b7fa020003f3..646d8ee7f102 100644
>>> --- a/mm/migrate.c
>>> +++ b/mm/migrate.c
>>> @@ -2483,8 +2483,6 @@ static int numamigrate_isolate_page(pg_data_t
>>> *pgdat, struct page *page)
>>>       int nr_pages = thp_nr_pages(page);
>>>       int order = compound_order(page);
>>> -    VM_BUG_ON_PAGE(order && !PageTransHuge(page), page);
>>> -
>>>       /* Do not migrate THP mapped by multiple processes */
>>>       if (PageTransHuge(page) && total_mapcount(page) > 1)
>>>           return 0;
>>> --
>>> 2.41.0
>>>
>>>
>>