Re: [v7 11/16] mm/migrate_device: add THP splitting during migration

From: Balbir Singh

Date: Tue Feb 10 2026 - 04:42:02 EST


On 2/10/26 20:39, David Hildenbrand (Arm) wrote:
> On 2/9/26 22:57, Balbir Singh wrote:
>> On 2/10/26 03:00, David Hildenbrand (Arm) wrote:
>>>
>>>> index 8c95a658b3ec..022b0729f826 100644
>>>> --- a/mm/huge_memory.c
>>>> +++ b/mm/huge_memory.c
>>>> @@ -3463,15 +3463,6 @@ static void __split_folio_to_order(struct folio *folio, int old_order,
>>>>            new_folio->mapping = folio->mapping;
>>>>            new_folio->index = folio->index + i;
>>>>    -        /*
>>>> -         * page->private should not be set in tail pages. Fix up and warn once
>>>> -         * if private is unexpectedly set.
>>>> -         */
>>>> -        if (unlikely(new_folio->private)) {
>>>> -            VM_WARN_ON_ONCE_PAGE(true, new_head);
>>>> -            new_folio->private = NULL;
>>>> -        }
>>>> -
>>>
>>> Balbir, why did you drop this check?
>>>
>
> Thanks for your reply.
>
>>
>> Are we running into this somewhere? This change clearly seems unrelated to the intent of the
>> patch that made this change (by me).
>
> We stumbled over its surprise removal while discussing something related.
>
> I thought you removed it because of some ZONE_DEVICE magic; the check has been proven helpful to catch bugs in the past.
>
> We always document carefully what our patches do, and why; and avoid doing unrelated things in our patches where possible.
>
>> I was seeing new_folio->private as NULL everywhere during
>> my testing and so I removed the check, happy to bring this defensive test back.
>
> I'll take care of re-adding it if is still useful after the other ->private changes we are planning.
>

Thanks!
Balbir