Re: [PATCH v10 2/6] userfaultfd: update documentation to describe UFFD_FEATURE_WP_ASYNC

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 2/9/23 2:31 AM, Peter Xu wrote:
> On Thu, Feb 02, 2023 at 04:29:11PM +0500, Muhammad Usama Anjum wrote:
>> Explain the difference created by UFFD_FEATURE_WP_ASYNC to the write
>> protection (UFFDIO_WRITEPROTECT_MODE_WP) mode.
>>
>> Signed-off-by: Muhammad Usama Anjum <usama.anjum@xxxxxxxxxxxxx>
>> ---
>>  Documentation/admin-guide/mm/userfaultfd.rst | 7 +++++++
>>  1 file changed, 7 insertions(+)
>>
>> diff --git a/Documentation/admin-guide/mm/userfaultfd.rst b/Documentation/admin-guide/mm/userfaultfd.rst
>> index 83f31919ebb3..4747e7bd5b26 100644
>> --- a/Documentation/admin-guide/mm/userfaultfd.rst
>> +++ b/Documentation/admin-guide/mm/userfaultfd.rst
>> @@ -221,6 +221,13 @@ former will have ``UFFD_PAGEFAULT_FLAG_WP`` set, the latter
>>  you still need to supply a page when ``UFFDIO_REGISTER_MODE_MISSING`` was
>>  used.
>>  
>> +If ``UFFD_FEATURE_WP_ASYNC`` is set while calling ``UFFDIO_API`` ioctl, the
>> +behaviour of ``UFFDIO_WRITEPROTECT_MODE_WP`` changes such that faults for
> 
> UFFDIO_WRITEPROTECT_MODE_WP is only a flag in UFFDIO_WRITEPROTECT, while
> it's forbidden only when not specified.
> 
>> +anon and shmem are resolved automatically by the kernel instead of sending
>> +the message to the userfaultfd. The hugetlb isn't supported. The ``pagemap``
>> +file can be read to find which pages have ``PM_UFFD_WP`` flag set which
>> +means they are write-protected.
> 
> Here's my version. Please feel free to do modifications on top.
> 
>   If the userfaultfd context (that has ``UFFDIO_REGISTER_MODE_WP``
>   registered against) has ``UFFD_FEATURE_WP_ASYNC`` feature enabled, it
>   will work in async write protection mode.  It can be seen as a more
>   accurate version of soft-dirty tracking, meanwhile the results will not
>   be easily affected by other operations like vma merging.
> 
>   Comparing to the generic mode, the async mode will not generate any
>   userfaultfd message when the protected memory range is written.  Instead,
>   the kernel will automatically resolve the page fault immediately by
>   dropping the uffd-wp bit in the pgtables.  The user app can collect the
>   "written/dirty" status by looking up the uffd-wp bit for the pages being
>   interested in /proc/pagemap.
> 
>   The page will be under track of uffd-wp async mode until the page is
>   explicitly write-protected by ``UFFDIO_WRITEPROTECT`` ioctl with the mode
>   flag ``UFFDIO_WRITEPROTECT_MODE_WP`` set.  Trying to resolve a page fault
>   that was tracked by async mode userfaultfd-wp is invalid.
> 
>   Currently ``UFFD_FEATURE_WP_ASYNC`` only support anonymous and shmem.
>   Hugetlb is not yet supported.
> 
It'll get replaced the documentation. I'll add a suggested by tag as well.
Thanks.

-- 
BR,
Muhammad Usama Anjum




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux