linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Alejandro Colomar <alx@kernel.org>
To: Axel Rasmussen <axelrasmussen@google.com>
Cc: Peter Xu <peterx@redhat.com>,
	linux-man@vger.kernel.org,  linux-mm@kvack.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH 08/10] ioctl_userfaultfd.2: clarify the state of the uffdio_api structure on error
Date: Tue, 26 Sep 2023 01:56:06 +0200	[thread overview]
Message-ID: <s4p5qch6llhedcr736vityb6ttvajk5xip7ebdijgw6zt4jbkk@nt2qh2ixmi3e> (raw)
In-Reply-To: <20230919190206.388896-9-axelrasmussen@google.com>

[-- Attachment #1: Type: text/plain, Size: 2402 bytes --]

Hi Axel,

On Tue, Sep 19, 2023 at 12:02:04PM -0700, Axel Rasmussen wrote:
> The old FIXME noted that the zeroing was done to differentiate the two
> EINVAL cases. It's possible something like this was true historically,
> but in current Linux we zero it in *both* EINVAL cases, so this is at
> least no longer true.
> 
> After reading the code, I can't determine any clear reason why we zero
> it in some cases but not in others. So, some simple advice we can give
> userspace is: if an error occurs, treat the contents of the structure as
> unspecified. Just re-initialize it before retrying UFFDIO_API again.
> 
> Signed-off-by: Axel Rasmussen <axelrasmussen@google.com>

I can't apply this patch due to conflicts (due to not having applied two
of the previous ones).  Please resend all remaining patches in following
revisions of the patch set.

The applied ones are here:

<https://git.kernel.org/pub/scm/docs/man-pages/man-pages.git/log/?h=contrib>

It's kind of like Linux's 'next' branch.

Cheers,
Alex

> ---
>  man2/ioctl_userfaultfd.2 | 16 ++++++++--------
>  1 file changed, 8 insertions(+), 8 deletions(-)
> 
> diff --git a/man2/ioctl_userfaultfd.2 b/man2/ioctl_userfaultfd.2
> index 1aa9654be..29dca1f6b 100644
> --- a/man2/ioctl_userfaultfd.2
> +++ b/man2/ioctl_userfaultfd.2
> @@ -272,6 +272,14 @@ operation returns 0 on success.
>  On error, \-1 is returned and
>  .I errno
>  is set to indicate the error.
> +If an error occurs,
> +the kernel may zero the provided
> +.I uffdio_api
> +structure.
> +The caller should treat its contents as unspecified,
> +and reinitialize it before re-attempting another
> +.B UFFDIO_API
> +call.
>  Possible errors include:
>  .TP
>  .B EFAULT
> @@ -305,14 +313,6 @@ twice,
>  the first time with no features set,
>  is explicitly allowed
>  as per the two-step feature detection handshake.
> -.\" FIXME In the above error case, the returned 'uffdio_api' structure is
> -.\" zeroed out. Why is this done? This should be explained in the manual page.
> -.\"
> -.\" Mike Rapoport:
> -.\"     In my understanding the uffdio_api
> -.\"     structure is zeroed to allow the caller
> -.\"     to distinguish the reasons for -EINVAL.
> -.\"
>  .SS UFFDIO_REGISTER
>  (Since Linux 4.3.)
>  Register a memory address range with the userfaultfd object.
> -- 
> 2.42.0.459.ge4e396fd5e-goog
> 

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

  reply	other threads:[~2023-09-25 23:56 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20230919190206.388896-1-axelrasmussen@google.com>
2023-09-19 19:01 ` [PATCH 01/10] userfaultfd.2: briefly mention two-step feature handshake process Axel Rasmussen
2023-09-25 23:26   ` Alejandro Colomar
2023-10-09  8:38   ` Mike Rapoport
2023-09-19 19:01 ` [PATCH 02/10] userfaultfd.2: reword to account for new fault resolution ioctls Axel Rasmussen
2023-09-25 23:29   ` Alejandro Colomar
2023-10-09  8:39   ` Mike Rapoport
2023-09-19 19:01 ` [PATCH 03/10] userfaultfd.2: comment on feature detection in the example program Axel Rasmussen
2023-09-25 23:32   ` Alejandro Colomar
2023-10-09  8:40   ` Mike Rapoport
2023-09-19 19:02 ` [PATCH 05/10] ioctl_userfaultfd.2: describe two-step feature handshake Axel Rasmussen
2023-09-25 23:44   ` Alejandro Colomar
2023-10-09  8:42   ` Mike Rapoport
2023-10-09 10:58     ` Alejandro Colomar
2023-09-19 19:02 ` [PATCH 06/10] ioctl_userfaultfd.2: describe missing UFFDIO_API feature flags Axel Rasmussen
2023-09-25 23:50   ` Alejandro Colomar
2023-10-09  8:45   ` Mike Rapoport
2023-10-09 10:49     ` Alejandro Colomar
2023-09-19 19:02 ` [PATCH 07/10] ioctl_userfaultfd.2: correct and update UFFDIO_API ioctl error codes Axel Rasmussen
2023-09-25 23:52   ` Alejandro Colomar
2023-10-09  8:49     ` Mike Rapoport
2023-10-09 11:01       ` Alejandro Colomar
2023-09-19 19:02 ` [PATCH 08/10] ioctl_userfaultfd.2: clarify the state of the uffdio_api structure on error Axel Rasmussen
2023-09-25 23:56   ` Alejandro Colomar [this message]
2023-09-26 17:58     ` Axel Rasmussen
2023-10-09  9:03   ` Mike Rapoport
2023-09-19 19:02 ` [PATCH 09/10] ioctl_userfaultfd.2: fix / update UFFDIO_REGISTER error code list Axel Rasmussen
2023-09-19 19:02 ` [PATCH 10/10] ioctl_userfaultfd.2: document new UFFDIO_POISON ioctl Axel Rasmussen
2023-10-09  9:09   ` Mike Rapoport
2023-10-10 17:13     ` Axel Rasmussen
     [not found] ` <20230919190206.388896-5-axelrasmussen@google.com>
2023-09-25 23:37   ` [PATCH 04/10] ioctl_userfaultfd.2: fix a few trivial mistakes Alejandro Colomar

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=s4p5qch6llhedcr736vityb6ttvajk5xip7ebdijgw6zt4jbkk@nt2qh2ixmi3e \
    --to=alx@kernel.org \
    --cc=axelrasmussen@google.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-man@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=peterx@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox