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

From: Anshuman Khandual
Date: Tue Jan 02 2018 - 06:26:08 EST


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);
}