Re: [v2 PATCH] move_pages.2: Returning positive value is a new error case

From: Michal Hocko
Date: Thu Jan 30 2020 - 07:03:00 EST


On Thu 30-01-20 10:06:28, Vlastimil Babka wrote:
> On 1/29/20 10:48 PM, Yang Shi wrote:
> > Since commit a49bd4d71637 ("mm, numa: rework do_pages_move"),
> > the semantic of move_pages() has changed to return the number of
> > non-migrated pages if they were result of a non-fatal reasons (usually a
> > busy page). This was an unintentional change that hasn't been noticed
> > except for LTP tests which checked for the documented behavior.
> >
> > There are two ways to go around this change. We can even get back to the
> > original behavior and return -EAGAIN whenever migrate_pages is not able
>
> The manpage says EBUSY, not EAGAIN? And should its description be
> updated too?

The idea was that we _could_ return EAGAIN from the syscall if
migrate_pages > 0.

> I.e. that it's no longer returned since 4.17?

I am pretty sure this will require a deeper consideration. Do we return
EIO/EINVAL?
--
Michal Hocko
SUSE Labs