On 1/30/20 1:02 PM, Michal Hocko wrote:
On Thu 30-01-20 10:06:28, Vlastimil Babka wrote:
quoted
On 1/29/20 10:48 PM, Yang Shi wrote:
quoted
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.
quoted
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?
I thought the manpage says we return -EBUSY, but I misread it, this part
was not about errno, but the status array. So there's nothing to update
there, sorry about the noise.
BTW, the suggestion to "Pre-initialization of the array to -1" means
effectively it's pre-initialized to -EPERM. That's fine now as -EPERM is
not one of the codes listed as possible to be returned via the array,
but perhaps it's not entirely future-proof?