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 2332EC636D3 for ; Wed, 8 Feb 2023 21:31:33 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 6619D6B0071; Wed, 8 Feb 2023 16:31:32 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 6118B6B0072; Wed, 8 Feb 2023 16:31:32 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 494056B0074; Wed, 8 Feb 2023 16:31:32 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 35B1C6B0071 for ; Wed, 8 Feb 2023 16:31:32 -0500 (EST) Received: from smtpin06.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id E4D37A0BD4 for ; Wed, 8 Feb 2023 21:31:31 +0000 (UTC) X-FDA: 80445421182.06.58990C3 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by imf14.hostedemail.com (Postfix) with ESMTP id BBBA5100017 for ; Wed, 8 Feb 2023 21:31:28 +0000 (UTC) Authentication-Results: imf14.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=i0cuJ2Jp; spf=pass (imf14.hostedemail.com: domain of peterx@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=peterx@redhat.com; dmarc=pass (policy=none) header.from=redhat.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1675891888; 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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=FIAor+VDsPlrB9lj+l3LEuEZ+2Aj/cQ4916Fau1bI0Q=; b=Yltj4JYQy+Imjbo2GluNZbr4nyNbSiHsZp4Ve2SRhyLo9k36pw3yOvc63EVDMqJzW3zHNw B2jxFzKm2JHpzUVElA48xlJvV6y5kBrdHXNZSf0M50rvm5zIvUarIxHucZHAvFb01uQZ2c +g4F/FVEo3yJot60Wayun4vba4+EBDE= ARC-Authentication-Results: i=1; imf14.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=i0cuJ2Jp; spf=pass (imf14.hostedemail.com: domain of peterx@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=peterx@redhat.com; dmarc=pass (policy=none) header.from=redhat.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1675891888; a=rsa-sha256; cv=none; b=rxfhTZAwqbwVnjMQYC1+DgFJrD81l1srafVu/ViR2eUgjOC0+Ensvza/mhN2aN8AaAo59T AInqut7x+dexk7sk6IozufuIlHIFpUXZZwSF8kmnhAeY8zZlj+dp3UAtSBe+bRfMaBjxd1 nukUNiEHaibufjpi086vKgl/mkjK2GU= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1675891888; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=FIAor+VDsPlrB9lj+l3LEuEZ+2Aj/cQ4916Fau1bI0Q=; b=i0cuJ2Jpe8hbwK8DOSMOXS4S73rmdVB6vb2zc9Z+hhYuuWTrVRCIqE+apmi8q+G4Zyddph dsmcFz0cLiQ6Oxo5/IjFCQwuMdD8k3RsWNCGwYbEo2Tem/8Tk2u/1iWISnHxINIYu5gVE3 WXxdj77n45E1oDgZxTpxIjo/E1l72S8= Received: from mail-qk1-f197.google.com (mail-qk1-f197.google.com [209.85.222.197]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-271-hJsgqonTNQSMcucKIt72Mw-1; Wed, 08 Feb 2023 16:31:26 -0500 X-MC-Unique: hJsgqonTNQSMcucKIt72Mw-1 Received: by mail-qk1-f197.google.com with SMTP id a198-20020ae9e8cf000000b007259083a3c8so15524qkg.7 for ; Wed, 08 Feb 2023 13:31:26 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=FIAor+VDsPlrB9lj+l3LEuEZ+2Aj/cQ4916Fau1bI0Q=; b=mq4uKC/LjjajsLB6VpK4Alzwx96f/aY9lvav58f2U78URwO2CI7Ed+tizbLWDLVqMn AiVIUb5pBDF4mBeO/KkL8IuGDSybm00YvAE7ctvrSUv8lZWonRVat1WFojkqZFZXFi0n OJlk229GUA3Z03Fwp7g/9gOEW2RR5chWWsuec9gfftZjaQJWtLfuNPjC0P04VJFhaHWh R3by/WyRPb07vMAsXlB5DFNlAF4guB54MIWRGifceWq7zZjTorqpKd+yfOEtEv42t8Gl YwIKnxn7jCUdJLHzPnCPtJcfoEH2yDyinZG241/FtKAFAITmWe2CEVlND00HYrbw0ccs ssdw== X-Gm-Message-State: AO0yUKUSCxLat7R0iBp+gJsormrZc5xx4Hbix7H+mGrd5Xs9u1u2Gyky agMbSLxgUB5Z11nncnCAJ+9EIRiUtHUi0PMEPAMX/LzKqzENhQRPnzXtM7jhX7+LoSTSdV4FOyv iEsFhdIElovM= X-Received: by 2002:a05:622a:4b:b0:3b8:6d44:ca7e with SMTP id y11-20020a05622a004b00b003b86d44ca7emr17516016qtw.4.1675891886297; Wed, 08 Feb 2023 13:31:26 -0800 (PST) X-Google-Smtp-Source: AK7set8MO3G4fUAKevd35vZj2kMQxmHZodb+yUyDlQNuQyvW5/EA2P822ioKc+/00V2eqHk7x67X+w== X-Received: by 2002:a05:622a:4b:b0:3b8:6d44:ca7e with SMTP id y11-20020a05622a004b00b003b86d44ca7emr17515958qtw.4.1675891885909; Wed, 08 Feb 2023 13:31:25 -0800 (PST) Received: from x1n (bras-base-aurron9127w-grc-56-70-30-145-63.dsl.bell.ca. [70.30.145.63]) by smtp.gmail.com with ESMTPSA id f4-20020a05622a1a0400b003b9b48cdbe8sm12419115qtb.58.2023.02.08.13.31.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 08 Feb 2023 13:31:24 -0800 (PST) Date: Wed, 8 Feb 2023 16:31:22 -0500 From: Peter Xu To: Muhammad Usama Anjum Cc: David Hildenbrand , Andrew Morton , =?utf-8?B?TWljaGHFgiBNaXJvc8WCYXc=?= , 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 Message-ID: References: <20230202112915.867409-1-usama.anjum@collabora.com> <20230202112915.867409-3-usama.anjum@collabora.com> MIME-Version: 1.0 In-Reply-To: <20230202112915.867409-3-usama.anjum@collabora.com> X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=utf-8 Content-Disposition: inline X-Rspamd-Queue-Id: BBBA5100017 X-Stat-Signature: 766dssn7hnmmwefzdjg6c9cdihsgjm1b X-Rspam-User: X-Rspamd-Server: rspam08 X-HE-Tag: 1675891888-764688 X-HE-Meta: U2FsdGVkX19X8iQ5H02jvVuSILR1ne8DUosR26Ht9WOQBYst4JFJ6xBnHP5QLL4EX2Vatzg0VKP6nDoYLEUZCHJMM8HFiJ5eo8wBeViuiZwdm9xt6vkc+1vKZh9MRQsmNyL3NpNU5SqjhQiIfrAGzzBFjfo4m9vZVUaKOeEcYz4xEjvqVM7CHlRfeiCBCsxSXr8isNFP/V+kXDNGSeazjpK+GFok3KrrYU9fbs3OTg3XhrOqS505hVJQzCCGY0IsStHjqnc0DyATl3Fzxlx1NIyLnDb7QNwI1XaX8euUi8iLvrviL9Y4RWo8zjQMhNAOm8GQ0Z6+xx1cTgI2UmtLs6n4WK+tIVEqPTQX5gcBLZbSH++NDcSxQWfs7NkDiYrqB9oH/kMLLD1ZEWw2WVLw2WGb9mJ4W9AQ+v0CVFfwyX21gz5UNcQfZtavgkghnXyccEJ+klGLQSFYR80R0CpazHfp8hW5z/2pkzCECW8hOuxobLoR08k2nNADJa3LXKyf7+Ym8LAURJioQzpet0/E7A6xPpYxtacckjmnFbPI5jlPm0Pw3aqGkgbZ4nEJTHFn7hVG40q9UC+F1FN5lI6MRU+l798jW5BmcoVB872nTIOIhH2vgDqa7i9IHY8dqZqi3/8H10PpP2EOmUga5yxn5RnVs7Dq8TKMPaJPgcNegn37gAj+zlL4uE7TNmcUM827sIOvurjf+FiyGKdsON8z/G/FxifhS1hXXcRzq1An/bCCkjXDtJethh/NukzSBlMcF/BU7NgMRjIXvosNGesNFwKSulO9XgFw6/1cdQwr5GA1IYHtTkoHX51Jk4zbs5WwsjprSb8IN8xWe17EQAGHzNAifsWb3j94Kv+jD1MYyzKJpUqD4cYFbE8GghjJyLaHzSTAUj1Bsf8BWamUEXieZo3hVUQDpFnADatys0C6vHjxTcE0ghTbWBsCwso/svtL9ATnFxEUWgTIg5eHe4n fQo5aSQK lCCIfGdezGDHfLrVESKOVczxgRjnE88PurlntVQvcuNcREf4XMARnV6PRfJVV9KREw5/EwOXqC9fjeRHIGEOjciKMclsEAI2mxdLrarodtvRylB52tkoXdn0JnreDORbSA5gq5RnoRGAjZg3dzyTIdKTQlQv7dLVTUQQsOXBT4+Zz/c4sD9SjC2uvhespyFj49RWxy6gIVvEBbmD2QVe6DzuOQf67ljo0WaETfZmxJV9MK5a5agYftCZXNY6x7+ONofBNbEGNajAygwgdLQvp7sP7LfqBchqUEA0E2Y4hJv92NZ2yT0CKbvLFSUzTiLrHd/hhdCFkRoPi4fd1l0T3hd742OE51MoFm4WVMGX3fl5+W8fxeZNzwxwR1y9aJ89DfGuU1klreehXKTzcJ/yk69g/G/3LzNbKYyTcA8eIOfP7fvs3dMYYLnLYZGAHkvRSkjf6VAIqZTIMgufvRFCp2xDPnL8DCrTMQsDs5Pc2e2B2IoU= 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 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. -- Peter Xu