lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <37c563dc-18c0-6eb9-dfb8-fd0e89988075@collabora.com>
Date:   Thu, 9 Feb 2023 20:47:42 +0500
From:   Muhammad Usama Anjum <usama.anjum@...labora.com>
To:     Peter Xu <peterx@...hat.com>
Cc:     Muhammad Usama Anjum <usama.anjum@...labora.com>,
        David Hildenbrand <david@...hat.com>,
        Andrew Morton <akpm@...ux-foundation.org>,
        Michał Mirosław 
        <emmir@...gle.com>, Andrei Vagin <avagin@...il.com>,
        Danylo Mocherniuk <mdanylo@...gle.com>,
        Paul Gofman <pgofman@...eweavers.com>,
        Cyrill Gorcunov <gorcunov@...il.com>,
        Alexander Viro <viro@...iv.linux.org.uk>,
        Shuah Khan <shuah@...nel.org>,
        Christian Brauner <brauner@...nel.org>,
        Yang Shi <shy828301@...il.com>,
        Vlastimil Babka <vbabka@...e.cz>,
        "Liam R . Howlett" <Liam.Howlett@...cle.com>,
        Yun Zhou <yun.zhou@...driver.com>,
        Suren Baghdasaryan <surenb@...gle.com>,
        Alex Sierra <alex.sierra@....com>,
        Matthew Wilcox <willy@...radead.org>,
        Pasha Tatashin <pasha.tatashin@...een.com>,
        Mike Rapoport <rppt@...nel.org>, Nadav Amit <namit@...are.com>,
        Axel Rasmussen <axelrasmussen@...gle.com>,
        "Gustavo A . R . Silva" <gustavoars@...nel.org>,
        Dan Williams <dan.j.williams@...el.com>,
        linux-kernel@...r.kernel.org, linux-fsdevel@...r.kernel.org,
        linux-mm@...ck.org, linux-kselftest@...r.kernel.org,
        Greg KH <gregkh@...uxfoundation.org>, kernel@...labora.com
Subject: Re: [PATCH v10 2/6] userfaultfd: update documentation to describe
 UFFD_FEATURE_WP_ASYNC

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@...labora.com>
>> ---
>>  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

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ