Re: [RFC PATCH 1/3] mm, numa: rework do_pages_move

From: Michal Hocko
Date: Tue Jan 02 2018 - 07:12:45 EST


On Tue 02-01-18 16:55:46, Anshuman Khandual wrote:
> On 12/08/2017 09:45 PM, Michal Hocko wrote:
> > From: Michal Hocko <mhocko@xxxxxxxx>
> >
> > do_pages_move is supposed to move user defined memory (an array of
> > addresses) to the user defined numa nodes (an array of nodes one for
> > each address). The user provided status array then contains resulting
> > numa node for each address or an error. The semantic of this function is
> > little bit confusing because only some errors are reported back. Notably
> > migrate_pages error is only reported via the return value. This patch
>
> It does report back the migration failures as well. In new_page_node
> there is '*result = &pm->status' which going forward in unmap_and_move
> will hold migration error or node ID of the new page.
>
> newpage = get_new_page(page, private, &result);
> ............
> if (result) {
> if (rc)
> *result = rc;
> else
> *result = page_to_nid(newpage);
> }
>

This is true, except the user will not get this information. Have a look
how we do not copy status on error up in the do_pages_move layer.

--
Michal Hocko
SUSE Labs