On Tue 08-08-17 09:08:17, Mike Rapoport wrote: > (adding Michal) Thanks > On Mon, Aug 07, 2017 at 04:12:25PM +0300, Mike Rapoport wrote: > > When the process exit races with outstanding mcopy_atomic, it would be > > better to return ESRCH error. When such race occurs the process and it's mm > > are going away and returning "no such process" to the uffd monitor seems > > better fit than ENOSPC. Not only the error message would be less confusing I also think that error handling should be more straightforward. Although I cannot find any guidelines for ENOSPC handling I've considered this errno as potentially temporary and retry might be feasible while ESRCH is a terminal error. I do not expect any userfaultfd users would retry on error but who knows how the interface will be used in future so better be prepared. > > Suggested-by: Michal Hocko <mhocko@xxxxxxxx> > > Cc: Andrea Arcangeli <aarcange@xxxxxxxxxx> > > Cc: "Dr. David Alan Gilbert" <dgilbert@xxxxxxxxxx> > > Cc: Pavel Emelyanov <xemul@xxxxxxxxxxxxx> > > Cc: Mike Kravetz <mike.kravetz@xxxxxxxxxx> > > Signed-off-by: Mike Rapoport <rppt@xxxxxxxxxxxxxxxxxx> Acked-by: Michal Hocko <mhocko@xxxxxxxx> > > --- > > The man-pages update is ready and I'll send it out once the patch is > > merged. > > > > fs/userfaultfd.c | 4 ++-- > > 1 file changed, 2 insertions(+), 2 deletions(-) > > > > diff --git a/fs/userfaultfd.c b/fs/userfaultfd.c > > index 06ea26b8c996..b0d5897bc4e6 100644 > > --- a/fs/userfaultfd.c > > +++ b/fs/userfaultfd.c > > @@ -1600,7 +1600,7 @@ static int userfaultfd_copy(struct userfaultfd_ctx *ctx, > > uffdio_copy.len); > > mmput(ctx->mm); > > } else { > > - return -ENOSPC; > > + return -ESRCH; > > } > > if (unlikely(put_user(ret, &user_uffdio_copy->copy))) > > return -EFAULT; > > @@ -1647,7 +1647,7 @@ static int userfaultfd_zeropage(struct userfaultfd_ctx *ctx, > > uffdio_zeropage.range.len); > > mmput(ctx->mm); > > } else { > > - return -ENOSPC; > > + return -ESRCH; > > } > > if (unlikely(put_user(ret, &user_uffdio_zeropage->zeropage))) > > return -EFAULT; > > -- > > 2.7.4 > > > > -- > Sincerely yours, > Mike. > -- Michal Hocko SUSE Labs -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>