Re: [PATCH 03/10] userfaultfd.2: comment on feature detection in the example program

Mike Rapoport
2023-10-09T08:41:57Z

On Tue, Sep 19, 2023 at 12:01:59PM -0700, Axel Rasmussen wrote:
> The example program doesn't depend on any extra features, so it does not
> make use of the two-step feature handshake process. This is fine, but it
> might set a bad example for programs which *do* depend on specific
> features (e.g. they may conclude they don't need to do anything to
> enable / detect them).
>
> No need to make the example program more complicated: let's just add a
> comment indicating why we do it the way we do it in the example, and
> describing briefly what a more complicated program would need to do
> instead.
>
> The comment is kept rather brief; a full description of this feature
> will be included in ioctl_userfaultfd.2 instead.
>
> Signed-off-by: Axel Rasmussen <axelrasmussen@google.com>

Reviewed-by: Mike Rapoport (IBM) <rppt@kernel.org>

> ---
> man2/userfaultfd.2 | 7 +++++++
> 1 file changed, 7 insertions(+)
>
> diff --git a/man2/userfaultfd.2 b/man2/userfaultfd.2
> index 00d94e514..b2b79f61d 100644
> --- a/man2/userfaultfd.2
> +++ b/man2/userfaultfd.2
> @@ -881,6 +881,13 @@ main(int argc, char *argv[])
> if (uffd == \-1)
> err(EXIT_FAILURE, "userfaultfd");
> \&
> + /* NOTE: Two-step feature handshake is not needed here, since this
> + example doesn't require any specific features.
> +
> + Programs that *do* should call UFFDIO_API twice: once with
> + `features = 0` to detect features supported by this kernel, and
> + again with the subset of features the program actually wants to
> + enable. */
> uffdio_api.api = UFFD_API;
> uffdio_api.features = 0;
> if (ioctl(uffd, UFFDIO_API, &uffdio_api) == \-1)
> --
> 2.42.0.459.ge4e396fd5e-goog
>
>

--
Sincerely yours,
Mike.