Re: [PATCH] move_pages.2: not return ENOENT if the page are already on the target nodes

From: John Hubbard
Date: Wed Dec 18 2019 - 02:39:08 EST


On 12/13/19 5:55 PM, Michael Kerrisk (man-pages) wrote:
...
whoa, hold on. If I'm reading through the various error paths
correctly, then this
code is *never* going to return ENOENT for the whole function. It can
fill in that
value per-page, in the status array, but that's all. Did I get that
right?

Nice catch. Yes, you are right.


If so, we need to redo this part of the man page.

Yes.

So where are things at with this? Is an improved man-pages
patch on the way, or is some other action (on the API) planned?


I was waiting to see if Yang was going to respond...anyway, I think
we're looking at approximately this sort of change:

diff --git a/man2/move_pages.2 b/man2/move_pages.2
index 2d96468fa..1bf1053f2 100644
--- a/man2/move_pages.2
+++ b/man2/move_pages.2
@@ -191,12 +191,6 @@ was specified or an attempt was made to migrate pages of a kernel thread.
.B ENODEV
One of the target nodes is not online.
.TP
-.B ENOENT
-No pages were found that require moving.
-All pages are either already
-on the target node, not present, had an invalid address or could not be
-moved because they were mapped by multiple processes.
-.TP
.B EPERM
The caller specified
.B MPOL_MF_MOVE_ALL

...But I'm not sure if we should change the implementation, instead, so
that it *can* return ENOENT. That's the main question to resolve before
creating any more patches, I think.

In addition, Michal mentioned that the page states in the status array also
need updated documentation.


thanks,
--
John Hubbard
NVIDIA