Re: [PATCH] mm: migrate: restore the nmask after successfully allocating on the target node

From: Oscar Salvador
Date: Fri Mar 28 2025 - 09:55:03 EST


On Wed, Mar 26, 2025 at 05:54:35AM +0000, Simon Wang (王传国) wrote:
>
> > On Wed, Mar 26, 2025 at 11:12:18AM +0800, wangchuanguo wrote:
> > > If memory is successfully allocated on the target node and the
> > > function directly returns without value restore for nmask, non-first
> > > migration operations in migrate_pages() by again label may ignore the
> > > nmask settings, thereby allowing new memory allocations for migration
> > > on any node.
> >
> > I have no opinion on whether this is the right thing to do or not, but if it is
> >
>
> I don't think so. When memory allocation fails on the target node, there is already a recovery operation for the nmask value below. Therefore, the nmask value should only be restored when memory allocation is successfully completed on the target node.

But that is not what the code is doing, is it? With the changes applied I mean.
You are restoring mtc->nmask in case you managed to allocate for __GFP_THISNODE
and after you clear the flag, so we might as well do it just once at the beginning
after calling alloc_migration_target for the first time.


--
Oscar Salvador
SUSE Labs