From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id A35B6C636D6 for ; Thu, 9 Feb 2023 15:48:02 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 28CAF6B0075; Thu, 9 Feb 2023 10:48:02 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 215DC6B0080; Thu, 9 Feb 2023 10:48:02 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 0B6C76B0082; Thu, 9 Feb 2023 10:48:02 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id E9F0F6B0075 for ; Thu, 9 Feb 2023 10:48:01 -0500 (EST) Received: from smtpin16.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 2DEEFA5103 for ; Thu, 9 Feb 2023 15:48:01 +0000 (UTC) X-FDA: 80448184362.16.A121ED1 Received: from madras.collabora.co.uk (madras.collabora.co.uk [46.235.227.172]) by imf08.hostedemail.com (Postfix) with ESMTP id DD0F7160002 for ; Thu, 9 Feb 2023 15:47:57 +0000 (UTC) Authentication-Results: imf08.hostedemail.com; dkim=pass header.d=collabora.com header.s=mail header.b=a0yvuy7e; spf=pass (imf08.hostedemail.com: domain of usama.anjum@collabora.com designates 46.235.227.172 as permitted sender) smtp.mailfrom=usama.anjum@collabora.com; dmarc=pass (policy=reject) header.from=collabora.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1675957678; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=ht+Mvkg6cGaBeENdOArKlDEYtXd7Hh7bQo+0k3kTE/Q=; b=4GUDEW3gMJn3Lk4Zwx45BOMGXhqbcDDMFAx2NlorQ6GmI3wBje+F3sCf+y+Xqm7+tptHcD a+id6pz5qoHWBIttMzPlAWwIZgGGxETNyPdlDwhx80rw65LfRAiuzTVatWW0xYdkubHpkU xjuJXlcQodfXX9/mivAUSQdPaXQHIKg= ARC-Authentication-Results: i=1; imf08.hostedemail.com; dkim=pass header.d=collabora.com header.s=mail header.b=a0yvuy7e; spf=pass (imf08.hostedemail.com: domain of usama.anjum@collabora.com designates 46.235.227.172 as permitted sender) smtp.mailfrom=usama.anjum@collabora.com; dmarc=pass (policy=reject) header.from=collabora.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1675957678; a=rsa-sha256; cv=none; b=QeXB7DQatahU8ewgZ4tk4JXXRf86LvkTPBOUtBMkYviHLA8JsSyppp918cRagm9G2soW7s A3mUb/t8qPiD+ErjFOfJBAtcR88IStRPSQCLzErkzrGKP7BD8LuBtlxnRrclREO99bLFoi 5lyY18ChQvj/35baHi2Nlo6TEhuTLv0= Received: from [192.168.10.12] (unknown [39.45.179.179]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) (Authenticated sender: usama.anjum) by madras.collabora.co.uk (Postfix) with ESMTPSA id D07DE6600013; Thu, 9 Feb 2023 15:47:46 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1675957676; bh=DZlQ60CxgLl8n6XS8Qgeqipg0PlBKRTKHQKI1pQjHGI=; h=Date:Cc:Subject:To:References:From:In-Reply-To:From; b=a0yvuy7eszjWUVLqHWLpROKH/zxy11KfPX34pPiLc8JCDbGxHCvg9qy99rQuL0OhI K97C/BTsW88Riniwr8O2TBZmJlM/XI/X3vtGD9D7a9iiI2aMs5xHyknhQsiDblF+vx z8UX+xcux21XZ4IFxBNxDFqh4W578bvRPOwhawHAz1h+GX+HpGtPse1o1tXKgpFgQT b7A6IZQjR7l1REdDbIitkGGsGWmnbwueoLdG5cZeer+QIQ5LaBIBR/w4ntJEwrvIg8 is9DhcEJ4+Sv+hIC7BbJpEYKoKL3K+UXYiSmVqX4ol9NUjz+bybkwvioYZdPg9FJHA BopMV6BZ+VGiw== Message-ID: <37c563dc-18c0-6eb9-dfb8-fd0e89988075@collabora.com> Date: Thu, 9 Feb 2023 20:47:42 +0500 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.6.0 Cc: Muhammad Usama Anjum , David Hildenbrand , Andrew Morton , =?UTF-8?B?TWljaGHFgiBNaXJvc8WC?= =?UTF-8?Q?aw?= , Andrei Vagin , Danylo Mocherniuk , Paul Gofman , Cyrill Gorcunov , Alexander Viro , Shuah Khan , Christian Brauner , Yang Shi , Vlastimil Babka , "Liam R . Howlett" , Yun Zhou , Suren Baghdasaryan , Alex Sierra , Matthew Wilcox , Pasha Tatashin , Mike Rapoport , Nadav Amit , Axel Rasmussen , "Gustavo A . R . Silva" , Dan Williams , linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, linux-kselftest@vger.kernel.org, Greg KH , kernel@collabora.com Subject: Re: [PATCH v10 2/6] userfaultfd: update documentation to describe UFFD_FEATURE_WP_ASYNC Content-Language: en-US To: Peter Xu References: <20230202112915.867409-1-usama.anjum@collabora.com> <20230202112915.867409-3-usama.anjum@collabora.com> From: Muhammad Usama Anjum In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Rspamd-Server: rspam05 X-Rspamd-Queue-Id: DD0F7160002 X-Stat-Signature: hoioy7nntw58461qwint9pmja1bq4smb X-Rspam-User: X-HE-Tag: 1675957677-611382 X-HE-Meta: U2FsdGVkX18l2ho+zSjkLWDuvN/YuC2s0kRT/QCbuz8x1n/ThUw+xsLSHzDAMpyNNV3lX/rozzMp3x4ZvOfkB/KqK2AXcyutSHXbf7CGDa8tfeWBYdzd3YQ9FguUs+5IlR2heX/5Myz3NWxAJ6OyIdlJmu/RL3Yqag5p7TLL2iPiXjCvIaIMvyD2v2Kbvh1j9VauvqUZHMS3U3aqhfxg84X9DHx6IKvE6172ag3Nzu5wVmAkQilmSMJhPEuNp+9o/+g+VIEtUH2mYJsmI79c/meFJLyA4N85772wL7sd9HhUOrRGoYEQ/44/WZ5qnmRRbA/CCtGyhqsWm6E4O8sMx7xbTX6j8+VPA8uF0A9bjsVzw3tKAvwMuE85oNP+U80sVVp2ockZYYhKhqOaQNtHSp/rYmwqbjV/sqVMdCE7EewfI2FnO5o0/jHfkAsk5pkqo3JiDCEzUuU8GtzYiPGZv04xCRDXNhL+0dTn/jhsV0RNy36tv0Vo0Uq54zOkUjqztCiRRHpamYoJlCeUzOQpyWBr30OeTRf+f43RQblZHGevl/N71811DJCefqfhjuW3CES1mzKDiQ5sAraxdJWJg2GnI3xYyFFHNTXdfgSXO7ad6R6qSyznTY0VIolDtAzQ7wi2P4z2ndpVFHonZUZV9fY4j/h6Xino4lHqdCjnbYLzcy9cmzzrNyVR7UXJr2rwcw8Vf+EUT+mJ5fFsaprgPDQK1i2zmmHcG5Wb3WhEMAQPC9EshP5FLIQjex5jg4JQN8OHV9T/R0Rqkcvyrc2VZxxB5AJHhmREDap9mDHi80FIzKfMWlLBTKxQERgVUo7vduV8EYxIy7VPO6KTMrSu/Q5AzW/GJbJ0DP/P2Dgge1Hy/BqN3nJugd5KBOaykVvkmvyDK2Cyf6G3C9gy75A2aKJ6GdbJXtDG/Z8r3XU0gl5PmsFZrXI/VMIsz9UGiadlkZ11i5WyxPKLcqTfZl2 AkiZ1Pdk iofF0Q6O7GZm+cX65+bE34QJAe1tCZxgem9plz3Ziev5a4ZYG9i1FN92ibAk8Esu7/+ixC5PUkrCgHySFnfRRzT+yBdGlkE/azYe3xvVjxxmrnW3MRHkpCyCX4cFAGyg1hwFzHnX7bIHoSzI1kCrdXjAuklf44NfADR2FwUx7z2QUuDL8mNRJO2O/AM1j7cTsMjpLG8+RDWroiry3tJY9U/EhaszeIycCle5hz5gdSF5Qx6QdOn5Rd67eYs5um/+u1iAo46qYyqhnPlYAWDOspZUNp7Fnud1RK0tTVNBgNXpjjJ5DY87ClNErYV4tYXgPfY4p X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: 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 >> --- >> 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