Re: [PATCH v2 21/26] userfaultfd: wp: add the writeprotect API to userfaultfd ioctl

Jerome Glisse
2019-02-21T18:28:35Z

On Tue, Feb 12, 2019 at 10:56:27AM +0800, Peter Xu wrote:
> From: Andrea Arcangeli <aarcange@redhat.com>
>
> v1: From: Shaohua Li <shli@fb.com>
>
> v2: cleanups, remove a branch.
>
> [peterx writes up the commit message, as below...]
>
> This patch introduces the new uffd-wp APIs for userspace.
>
> Firstly, we'll allow to do UFFDIO_REGISTER with write protection
> tracking using the new UFFDIO_REGISTER_MODE_WP flag. Note that this
> flag can co-exist with the existing UFFDIO_REGISTER_MODE_MISSING, in
> which case the userspace program can not only resolve missing page
> faults, and at the same time tracking page data changes along the way.
>
> Secondly, we introduced the new UFFDIO_WRITEPROTECT API to do page
> level write protection tracking. Note that we will need to register
> the memory region with UFFDIO_REGISTER_MODE_WP before that.
>
> Signed-off-by: Andrea Arcangeli <aarcange@redhat.com>
> [peterx: remove useless block, write commit message, check against
> VM_MAYWRITE rather than VM_WRITE when register]
> Signed-off-by: Peter Xu <peterx@redhat.com>

I am not an expert with userfaultfd code but it looks good to me so:

Also see my question down below, just a minor one.

Reviewed-by: Jérôme Glisse <jglisse@redhat.com>

> ---
> fs/userfaultfd.c | 82 +++++++++++++++++++++++++-------
> include/uapi/linux/userfaultfd.h | 11 +++++
> 2 files changed, 77 insertions(+), 16 deletions(-)
>

[...]

> diff --git a/include/uapi/linux/userfaultfd.h b/include/uapi/linux/userfaultfd.h
> index 297cb044c03f..1b977a7a4435 100644
> --- a/include/uapi/linux/userfaultfd.h
> +++ b/include/uapi/linux/userfaultfd.h
> @@ -52,6 +52,7 @@
> #define _UFFDIO_WAKE (0x02)
> #define _UFFDIO_COPY (0x03)
> #define _UFFDIO_ZEROPAGE (0x04)
> +#define _UFFDIO_WRITEPROTECT (0x06)
> #define _UFFDIO_API (0x3F)

What did happen to ioctl 0x05 ? :)