2022-03-19 04:51:59

by Ian Abbott

[permalink] [raw]
Subject: [PATCH] ioctl_userfaultfd.2: Corrections for returned .ioctls members

Support for the `UFFDIO_WRITEPROTECT` operation is not indicated in the
`ioctls` member of `struct uffdio_api`. It is indicated in the `ioctls`
member of `struct uffdio_register` along with indications of support for
the `UFFDIO_COPY`, `UFFDIO_WAKE` and `UFFDIO_ZEROPAGE` operations (and
also the `UFFDIO_CONTINUE` operation supported since Linux 5.13 but
that is not documented by this man page yet.)

Fixes: f559fa36a678 ("ioctl_userfaultfd.2: Add write-protect mode docs")
Signed-off-by: Ian Abbott <[email protected]>
---
man2/ioctl_userfaultfd.2 | 27 ++++++++++++++++++++-------
1 file changed, 20 insertions(+), 7 deletions(-)

diff --git a/man2/ioctl_userfaultfd.2 b/man2/ioctl_userfaultfd.2
index 504f61d4b..e930af520 100644
--- a/man2/ioctl_userfaultfd.2
+++ b/man2/ioctl_userfaultfd.2
@@ -235,11 +235,6 @@ operation is supported.
The
.B UFFDIO_UNREGISTER
operation is supported.
-.TP
-.B 1 << _UFFDIO_WRITEPROTECT
-The
-.B UFFDIO_WRITEPROTECT
-operation is supported.
.PP
This
.BR ioctl (2)
@@ -333,8 +328,26 @@ If the operation is successful, the kernel modifies the
bit-mask field to indicate which
.BR ioctl (2)
operations are available for the specified range.
-This returned bit mask is as for
-.BR UFFDIO_API .
+This returned bit mask can contain the following bits:
+.TP
+.B 1 << _UFFDIO_COPY
+The
+.B UFFDIO_COPY
+operation is supported.
+.TP
+.B 1 << _UFFDIO_WAKE
+The
+.B UFFDIO_WAKE
+operation is supported.
+.TP
+.B 1 << _UFFDIO_WRITEPROTECT
+The
+.B UFFDIO_WRITEPROTECT
+.TP
+.B 1 << _UFFDIO_ZEROPAGE
+The
+.B UFFDIO_ZEROPAGE
+operation is supported.
.PP
This
.BR ioctl (2)
--
2.35.1


2022-03-21 22:44:49

by Peter Xu

[permalink] [raw]
Subject: Re: [PATCH] ioctl_userfaultfd.2: Corrections for returned .ioctls members

On Fri, Mar 18, 2022 at 07:13:43PM +0000, Ian Abbott wrote:
> Support for the `UFFDIO_WRITEPROTECT` operation is not indicated in the
> `ioctls` member of `struct uffdio_api`. It is indicated in the `ioctls`
> member of `struct uffdio_register` along with indications of support for
> the `UFFDIO_COPY`, `UFFDIO_WAKE` and `UFFDIO_ZEROPAGE` operations (and
> also the `UFFDIO_CONTINUE` operation supported since Linux 5.13 but
> that is not documented by this man page yet.)

I thought it should have landed but indeed it's not. Copying Axel.

>
> Fixes: f559fa36a678 ("ioctl_userfaultfd.2: Add write-protect mode docs")
> Signed-off-by: Ian Abbott <[email protected]>

The patch looks correct to me, thanks for fixing it.

Acked-by: Peter Xu <[email protected]>

> ---
> man2/ioctl_userfaultfd.2 | 27 ++++++++++++++++++++-------
> 1 file changed, 20 insertions(+), 7 deletions(-)
>
> diff --git a/man2/ioctl_userfaultfd.2 b/man2/ioctl_userfaultfd.2
> index 504f61d4b..e930af520 100644
> --- a/man2/ioctl_userfaultfd.2
> +++ b/man2/ioctl_userfaultfd.2
> @@ -235,11 +235,6 @@ operation is supported.
> The
> .B UFFDIO_UNREGISTER
> operation is supported.
> -.TP
> -.B 1 << _UFFDIO_WRITEPROTECT
> -The
> -.B UFFDIO_WRITEPROTECT
> -operation is supported.
> .PP
> This
> .BR ioctl (2)
> @@ -333,8 +328,26 @@ If the operation is successful, the kernel modifies the
> bit-mask field to indicate which
> .BR ioctl (2)
> operations are available for the specified range.
> -This returned bit mask is as for
> -.BR UFFDIO_API .
> +This returned bit mask can contain the following bits:
> +.TP
> +.B 1 << _UFFDIO_COPY
> +The
> +.B UFFDIO_COPY
> +operation is supported.
> +.TP
> +.B 1 << _UFFDIO_WAKE
> +The
> +.B UFFDIO_WAKE
> +operation is supported.
> +.TP
> +.B 1 << _UFFDIO_WRITEPROTECT
> +The
> +.B UFFDIO_WRITEPROTECT
> +.TP
> +.B 1 << _UFFDIO_ZEROPAGE
> +The
> +.B UFFDIO_ZEROPAGE
> +operation is supported.
> .PP
> This
> .BR ioctl (2)
> --

--
Peter Xu

2022-03-22 18:30:54

by Alejandro Colomar

[permalink] [raw]
Subject: Re: [PATCH] ioctl_userfaultfd.2: Corrections for returned .ioctls members

Hi Ian and Peter,

On 3/21/22 07:10, Peter Xu wrote:
> On Fri, Mar 18, 2022 at 07:13:43PM +0000, Ian Abbott wrote:
>> Support for the `UFFDIO_WRITEPROTECT` operation is not indicated in the
>> `ioctls` member of `struct uffdio_api`. It is indicated in the `ioctls`
>> member of `struct uffdio_register` along with indications of support for
>> the `UFFDIO_COPY`, `UFFDIO_WAKE` and `UFFDIO_ZEROPAGE` operations (and
>> also the `UFFDIO_CONTINUE` operation supported since Linux 5.13 but
>> that is not documented by this man page yet.)
>
> I thought it should have landed but indeed it's not. Copying Axel.
>
>>
>> Fixes: f559fa36a678 ("ioctl_userfaultfd.2: Add write-protect mode docs")
>> Signed-off-by: Ian Abbott <[email protected]>

Patch applied.

>
> The patch looks correct to me, thanks for fixing it.
>
> Acked-by: Peter Xu <[email protected]>

And tag appended.

Thank you both!

Alex

>
>> ---
>> man2/ioctl_userfaultfd.2 | 27 ++++++++++++++++++++-------
>> 1 file changed, 20 insertions(+), 7 deletions(-)
>>
>> diff --git a/man2/ioctl_userfaultfd.2 b/man2/ioctl_userfaultfd.2
>> index 504f61d4b..e930af520 100644
>> --- a/man2/ioctl_userfaultfd.2
>> +++ b/man2/ioctl_userfaultfd.2
>> @@ -235,11 +235,6 @@ operation is supported.
>> The
>> .B UFFDIO_UNREGISTER
>> operation is supported.
>> -.TP
>> -.B 1 << _UFFDIO_WRITEPROTECT
>> -The
>> -.B UFFDIO_WRITEPROTECT
>> -operation is supported.
>> .PP
>> This
>> .BR ioctl (2)
>> @@ -333,8 +328,26 @@ If the operation is successful, the kernel modifies the
>> bit-mask field to indicate which
>> .BR ioctl (2)
>> operations are available for the specified range.
>> -This returned bit mask is as for
>> -.BR UFFDIO_API .
>> +This returned bit mask can contain the following bits:
>> +.TP
>> +.B 1 << _UFFDIO_COPY
>> +The
>> +.B UFFDIO_COPY
>> +operation is supported.
>> +.TP
>> +.B 1 << _UFFDIO_WAKE
>> +The
>> +.B UFFDIO_WAKE
>> +operation is supported.
>> +.TP
>> +.B 1 << _UFFDIO_WRITEPROTECT
>> +The
>> +.B UFFDIO_WRITEPROTECT
>> +.TP
>> +.B 1 << _UFFDIO_ZEROPAGE
>> +The
>> +.B UFFDIO_ZEROPAGE
>> +operation is supported.
>> .PP
>> This
>> .BR ioctl (2)
>> --
>

--
Alejandro Colomar
Linux man-pages comaintainer; http://www.kernel.org/doc/man-pages/
http://www.alejandro-colomar.es/

2022-03-22 20:42:13

by Ian Abbott

[permalink] [raw]
Subject: Re: [PATCH] ioctl_userfaultfd.2: Corrections for returned .ioctls members

On 22/03/2022 16:36, Axel Rasmussen wrote:
> On Tue, Mar 22, 2022 at 9:23 AM Axel Rasmussen <[email protected]> wrote:
>>
>> On Tue, Mar 22, 2022 at 5:32 AM Alejandro Colomar (man-pages)
>> <[email protected]> wrote:
>>>
>>> Hi Ian and Peter,
>>>
>>> On 3/21/22 07:10, Peter Xu wrote:
>>>> On Fri, Mar 18, 2022 at 07:13:43PM +0000, Ian Abbott wrote:
>>>>> Support for the `UFFDIO_WRITEPROTECT` operation is not indicated in the
>>>>> `ioctls` member of `struct uffdio_api`. It is indicated in the `ioctls`
>>>>> member of `struct uffdio_register` along with indications of support for
>>>>> the `UFFDIO_COPY`, `UFFDIO_WAKE` and `UFFDIO_ZEROPAGE` operations (and
>>>>> also the `UFFDIO_CONTINUE` operation supported since Linux 5.13 but
>>>>> that is not documented by this man page yet.)
>>>>
>>>> I thought it should have landed but indeed it's not. Copying Axel.
>>
>> Ah, I mistakenly thought it got merged, but there were a few remaining
>> issues Alejandro wanted addressed first. I'll send a v3 of it later
>> today.
>>
>> For what it's worth, as part of adding minor fault handling, we pretty
>> significantly change the ioctl field's behavior, and I rewrote a lot
>> of the documentation around it. So, it may conflict with this patch.
>> :/ Sorry about that.
>
> Heh, I spoke too soon. My patch doesn't touch this after all, I think
> the patches don't conflict. :) It's been a while since I looked at
> it...

I guess the section (in my patch) that indicates supported ioctls in
`struct uffdio_register` would still need tweaking to mention
`UFFDIO_CONTINUE` though, so either one of the patches will need to
change or another little patch will be needed.

--
-=( Ian Abbott <[email protected]> || MEV Ltd. is a company )=-
-=( registered in England & Wales. Regd. number: 02862268. )=-
-=( Regd. addr.: S11 & 12 Building 67, Europa Business Park, )=-
-=( Bird Hall Lane, STOCKPORT, SK3 0XA, UK. || http://www.mev.co.uk )=-

2022-03-22 23:28:50

by Axel Rasmussen

[permalink] [raw]
Subject: Re: [PATCH] ioctl_userfaultfd.2: Corrections for returned .ioctls members

On Tue, Mar 22, 2022 at 5:32 AM Alejandro Colomar (man-pages)
<[email protected]> wrote:
>
> Hi Ian and Peter,
>
> On 3/21/22 07:10, Peter Xu wrote:
> > On Fri, Mar 18, 2022 at 07:13:43PM +0000, Ian Abbott wrote:
> >> Support for the `UFFDIO_WRITEPROTECT` operation is not indicated in the
> >> `ioctls` member of `struct uffdio_api`. It is indicated in the `ioctls`
> >> member of `struct uffdio_register` along with indications of support for
> >> the `UFFDIO_COPY`, `UFFDIO_WAKE` and `UFFDIO_ZEROPAGE` operations (and
> >> also the `UFFDIO_CONTINUE` operation supported since Linux 5.13 but
> >> that is not documented by this man page yet.)
> >
> > I thought it should have landed but indeed it's not. Copying Axel.

Ah, I mistakenly thought it got merged, but there were a few remaining
issues Alejandro wanted addressed first. I'll send a v3 of it later
today.

For what it's worth, as part of adding minor fault handling, we pretty
significantly change the ioctl field's behavior, and I rewrote a lot
of the documentation around it. So, it may conflict with this patch.
:/ Sorry about that.

> >
> >>
> >> Fixes: f559fa36a678 ("ioctl_userfaultfd.2: Add write-protect mode docs")
> >> Signed-off-by: Ian Abbott <[email protected]>
>
> Patch applied.
>
> >
> > The patch looks correct to me, thanks for fixing it.
> >
> > Acked-by: Peter Xu <[email protected]>
>
> And tag appended.
>
> Thank you both!
>
> Alex
>
> >
> >> ---
> >> man2/ioctl_userfaultfd.2 | 27 ++++++++++++++++++++-------
> >> 1 file changed, 20 insertions(+), 7 deletions(-)
> >>
> >> diff --git a/man2/ioctl_userfaultfd.2 b/man2/ioctl_userfaultfd.2
> >> index 504f61d4b..e930af520 100644
> >> --- a/man2/ioctl_userfaultfd.2
> >> +++ b/man2/ioctl_userfaultfd.2
> >> @@ -235,11 +235,6 @@ operation is supported.
> >> The
> >> .B UFFDIO_UNREGISTER
> >> operation is supported.
> >> -.TP
> >> -.B 1 << _UFFDIO_WRITEPROTECT
> >> -The
> >> -.B UFFDIO_WRITEPROTECT
> >> -operation is supported.
> >> .PP
> >> This
> >> .BR ioctl (2)
> >> @@ -333,8 +328,26 @@ If the operation is successful, the kernel modifies the
> >> bit-mask field to indicate which
> >> .BR ioctl (2)
> >> operations are available for the specified range.
> >> -This returned bit mask is as for
> >> -.BR UFFDIO_API .
> >> +This returned bit mask can contain the following bits:
> >> +.TP
> >> +.B 1 << _UFFDIO_COPY
> >> +The
> >> +.B UFFDIO_COPY
> >> +operation is supported.
> >> +.TP
> >> +.B 1 << _UFFDIO_WAKE
> >> +The
> >> +.B UFFDIO_WAKE
> >> +operation is supported.
> >> +.TP
> >> +.B 1 << _UFFDIO_WRITEPROTECT
> >> +The
> >> +.B UFFDIO_WRITEPROTECT
> >> +.TP
> >> +.B 1 << _UFFDIO_ZEROPAGE
> >> +The
> >> +.B UFFDIO_ZEROPAGE
> >> +operation is supported.
> >> .PP
> >> This
> >> .BR ioctl (2)
> >> --
> >
>
> --
> Alejandro Colomar
> Linux man-pages comaintainer; http://www.kernel.org/doc/man-pages/
> http://www.alejandro-colomar.es/

2022-03-22 23:28:59

by Axel Rasmussen

[permalink] [raw]
Subject: Re: [PATCH] ioctl_userfaultfd.2: Corrections for returned .ioctls members

On Tue, Mar 22, 2022 at 9:23 AM Axel Rasmussen <[email protected]> wrote:
>
> On Tue, Mar 22, 2022 at 5:32 AM Alejandro Colomar (man-pages)
> <[email protected]> wrote:
> >
> > Hi Ian and Peter,
> >
> > On 3/21/22 07:10, Peter Xu wrote:
> > > On Fri, Mar 18, 2022 at 07:13:43PM +0000, Ian Abbott wrote:
> > >> Support for the `UFFDIO_WRITEPROTECT` operation is not indicated in the
> > >> `ioctls` member of `struct uffdio_api`. It is indicated in the `ioctls`
> > >> member of `struct uffdio_register` along with indications of support for
> > >> the `UFFDIO_COPY`, `UFFDIO_WAKE` and `UFFDIO_ZEROPAGE` operations (and
> > >> also the `UFFDIO_CONTINUE` operation supported since Linux 5.13 but
> > >> that is not documented by this man page yet.)
> > >
> > > I thought it should have landed but indeed it's not. Copying Axel.
>
> Ah, I mistakenly thought it got merged, but there were a few remaining
> issues Alejandro wanted addressed first. I'll send a v3 of it later
> today.
>
> For what it's worth, as part of adding minor fault handling, we pretty
> significantly change the ioctl field's behavior, and I rewrote a lot
> of the documentation around it. So, it may conflict with this patch.
> :/ Sorry about that.

Heh, I spoke too soon. My patch doesn't touch this after all, I think
the patches don't conflict. :) It's been a while since I looked at
it...

>
> > >
> > >>
> > >> Fixes: f559fa36a678 ("ioctl_userfaultfd.2: Add write-protect mode docs")
> > >> Signed-off-by: Ian Abbott <[email protected]>
> >
> > Patch applied.
> >
> > >
> > > The patch looks correct to me, thanks for fixing it.
> > >
> > > Acked-by: Peter Xu <[email protected]>
> >
> > And tag appended.
> >
> > Thank you both!
> >
> > Alex
> >
> > >
> > >> ---
> > >> man2/ioctl_userfaultfd.2 | 27 ++++++++++++++++++++-------
> > >> 1 file changed, 20 insertions(+), 7 deletions(-)
> > >>
> > >> diff --git a/man2/ioctl_userfaultfd.2 b/man2/ioctl_userfaultfd.2
> > >> index 504f61d4b..e930af520 100644
> > >> --- a/man2/ioctl_userfaultfd.2
> > >> +++ b/man2/ioctl_userfaultfd.2
> > >> @@ -235,11 +235,6 @@ operation is supported.
> > >> The
> > >> .B UFFDIO_UNREGISTER
> > >> operation is supported.
> > >> -.TP
> > >> -.B 1 << _UFFDIO_WRITEPROTECT
> > >> -The
> > >> -.B UFFDIO_WRITEPROTECT
> > >> -operation is supported.
> > >> .PP
> > >> This
> > >> .BR ioctl (2)
> > >> @@ -333,8 +328,26 @@ If the operation is successful, the kernel modifies the
> > >> bit-mask field to indicate which
> > >> .BR ioctl (2)
> > >> operations are available for the specified range.
> > >> -This returned bit mask is as for
> > >> -.BR UFFDIO_API .
> > >> +This returned bit mask can contain the following bits:
> > >> +.TP
> > >> +.B 1 << _UFFDIO_COPY
> > >> +The
> > >> +.B UFFDIO_COPY
> > >> +operation is supported.
> > >> +.TP
> > >> +.B 1 << _UFFDIO_WAKE
> > >> +The
> > >> +.B UFFDIO_WAKE
> > >> +operation is supported.
> > >> +.TP
> > >> +.B 1 << _UFFDIO_WRITEPROTECT
> > >> +The
> > >> +.B UFFDIO_WRITEPROTECT
> > >> +.TP
> > >> +.B 1 << _UFFDIO_ZEROPAGE
> > >> +The
> > >> +.B UFFDIO_ZEROPAGE
> > >> +operation is supported.
> > >> .PP
> > >> This
> > >> .BR ioctl (2)
> > >> --
> > >
> >
> > --
> > Alejandro Colomar
> > Linux man-pages comaintainer; http://www.kernel.org/doc/man-pages/
> > http://www.alejandro-colomar.es/