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 85321C76196 for ; Fri, 24 Mar 2023 15:21:32 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 259AA6B0074; Fri, 24 Mar 2023 11:21:32 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 2099F6B007B; Fri, 24 Mar 2023 11:21:32 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 0D47C6B007D; Fri, 24 Mar 2023 11:21:32 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id F38E46B0074 for ; Fri, 24 Mar 2023 11:21:31 -0400 (EDT) Received: from smtpin16.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id D090980A4D for ; Fri, 24 Mar 2023 15:21:31 +0000 (UTC) X-FDA: 80604155982.16.0F15CEF Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by imf09.hostedemail.com (Postfix) with ESMTP id 3B76D14001B for ; Fri, 24 Mar 2023 15:21:29 +0000 (UTC) Authentication-Results: imf09.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=fn3kRfUD; spf=pass (imf09.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=1679671289; 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=l2ZcFjGPyvdkN1Ahk/MAzD3kIxT6I201Jwklk3yO8Fw=; b=IM+wZ5yZWJK76RVycAeA85enxbcGVUd4Q7vX2ifRGZ20GqaNJhDmBFrS/X/AicgqNXdPbt ota3ROQ0cWjRTzUKef4yhif3yiZtSfLg1pjQHD3u1Ix8wGJK/zwviXLTMsuH3HIALeCjWm XXIBXZ9K9XgzDMx6oataYGcUMeepMUM= ARC-Authentication-Results: i=1; imf09.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=fn3kRfUD; spf=pass (imf09.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=1679671289; a=rsa-sha256; cv=none; b=PRMCryVSiKvcBQNexJSC4Zh4rhDL8krO+sQ3UuL+YH7C4q5B5ZxBLT7ROR/994ILNEaQs2 yNfN4OruI3Tpfj2N8MODOgBPlxeWUC2EVFTbOxG2qL2K1OvgE1p+NuyT7FC7v63g+zZ7RZ 5Z/iN3rtAnFsFevnG5a051TWKmggE2c= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1679671288; 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=l2ZcFjGPyvdkN1Ahk/MAzD3kIxT6I201Jwklk3yO8Fw=; b=fn3kRfUDmKRr2kAJMDR5ku/CcgbSHxxCaP6K8KnUsanL6ZamqXJMce0hVhM4mNsQDeFKNv id/hLrRg8wdC4UaVD3ixqvTZX2dyOhUT2XUZgPZ7xzc40rhODjbIr8wlld78Grx25/S4SY 82doZgW9ETSqvwdzWdftHinoGF+R6hU= Received: from mail-qv1-f72.google.com (mail-qv1-f72.google.com [209.85.219.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-17-NRK67yGpOhu-nzY3t9rgFw-1; Fri, 24 Mar 2023 11:21:27 -0400 X-MC-Unique: NRK67yGpOhu-nzY3t9rgFw-1 Received: by mail-qv1-f72.google.com with SMTP id 6a1803df08f44-5aae34d87f7so1123476d6.0 for ; Fri, 24 Mar 2023 08:21:27 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1679671285; 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=RwIl1QSNvzkLS9Sxxe5+7dE+ydIew8YzAZjo7jsngNU=; b=vTBk+LNwS3PhSR4rHZO2pWbBmm7M4Wt7zJreb9peZINyah6vzpQz7e9S4QIT7dmiag i1A63gIM2+rmTD0ebcjTCEBjBCa5QiLNraeGjvKvmDT+PTaKzYYXUTBlpqMBJ5CigBdz NcO22UwZAboHXQpnqsBrNrNYm5dmfmclEbi3AhtjyyE9AaJuixdgGYmKVr0HVRjyEO6D N9w7cQXGbu9LQblAuaBpB/X5U3wc/CBEVv9tElW9c7o9tviaSyJDVe8XZ8xXD/T2EhVr Btms1BDmsq5gNzE4H1R/72fYZ55TWMbQvUVdEoPqwFdyAHRlhRIX29UokQNxbVwjHt9A DeWA== X-Gm-Message-State: AAQBX9f2cN5JRpsZNQUODK0+SQ03Y0u7u0zMrNNlTFp280JgCe4yrPaC vZ0naIoG8CyBKERgn92l7PRevXMZ4/uM3k5sjA2Xi7uAl0/8YmazGjkfjp6CggBsjy6zrBLNLTZ G8xExcYkMhKBGjI6RSC2AE7ZWLeZEHztZ7TIGJ2ShaXtacp225BCyaBipJultk7rVYO9+ X-Received: by 2002:a05:6214:4004:b0:5da:b965:1efe with SMTP id kd4-20020a056214400400b005dab9651efemr2961699qvb.4.1679671285531; Fri, 24 Mar 2023 08:21:25 -0700 (PDT) X-Google-Smtp-Source: AKy350Yh3EX2TBM32j7Q3MeOBZCe4bgG3votqEqto8U63meOgC0P9tIDTYjcwKiQFIXCo2UstG63RA== X-Received: by 2002:a05:6214:4004:b0:5da:b965:1efe with SMTP id kd4-20020a056214400400b005dab9651efemr2961642qvb.4.1679671285172; Fri, 24 Mar 2023 08:21:25 -0700 (PDT) Received: from x1n (bras-base-aurron9127w-grc-40-70-52-229-124.dsl.bell.ca. [70.52.229.124]) by smtp.gmail.com with ESMTPSA id do8-20020a056214096800b005dd8b9345dasm764403qvb.114.2023.03.24.08.21.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 24 Mar 2023 08:21:24 -0700 (PDT) Date: Fri, 24 Mar 2023 11:21:22 -0400 From: Peter Xu To: linux-mm@kvack.org, linux-kernel@vger.kernel.org Cc: Nadav Amit , Axel Rasmussen , Paul Gofman , Muhammad Usama Anjum , David Hildenbrand , Mike Rapoport , Andrea Arcangeli , Andrew Morton Subject: Re: [PATCH v4 1/2] mm/uffd: UFFD_FEATURE_WP_UNPOPULATED Message-ID: References: <20230309223711.823547-1-peterx@redhat.com> <20230309223711.823547-2-peterx@redhat.com> MIME-Version: 1.0 In-Reply-To: <20230309223711.823547-2-peterx@redhat.com> X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: multipart/mixed; boundary="PrVZmVHSrLNPnUcY" Content-Disposition: inline X-Rspamd-Server: rspam05 X-Rspamd-Queue-Id: 3B76D14001B X-Stat-Signature: st47kfzpimftsmu3bded1dxd93131oa9 X-Rspam-User: X-HE-Tag: 1679671289-474670 X-HE-Meta: U2FsdGVkX1+BCPkZk0kQhcnk9et/eqwy5YYE6zSiR/db8+O5qMVsGfvJKwUjLKDEXrNP1VF59O6dXhRSIdPESQgrcc+H4jOeO3DlI8a8j14E1HB4ihcTAQTc78CuAeLjX4wI+hiP2Qi+IBYFp4UkauLd+dv8Gc/dzPqVY2poqH4HVVvyoQGSUYQImPsp2SoIUUQo93dIy+tHerNsDtChEB9yhnDmpufIEebT7M+QBUyAOEVvsNuIYAqvMUk4I1e8a5HXy2YcZMeaTDuX/VOFSD4gpZ9bhMjQ6TIQC7f2t/3lpYaimyBIt66Tsvy0/B7WyvsyP+FkuIY/bMz21+17QOpucpotjozimnBd83tw/Zu8I2TRLrO0PDe58aJn+LsaqlIf3uqIC0m6buHEOUkzHHpex2DHI308o9veT/ORDSCUdj3oX4hh3YTs/tfdsDCDAsPMlDzAUMIRKK3dd3BEz1bSJcffTTSb/y/Ej52OPrcLRWPyddz/kvS2Oc80U+4LM8/m/YYmnUoWb/cAltfAIuFV0Z64wxjjtIswJ4hm8UKqBXHYDSfnp1tnPAYubPWc+bxuHyN+381Mc09B0JSq5CzdNsi26XF6+GBSPEMvnLKY3q9Hmz8bCUy4osszZoQZwiDYw7G8+BBMMStiMziI+Ll6kOalHsQjWFxVnu0SqneXvkgLam3W9XCQCstjW8d+z91iUiEn31DFNhjinpiSb++2ToL0FPOYRgfsqLAkQWlSKxUnolsa9Dkp7/EIB7kH1DMf6HoepRTRiFKD3BAMNfGNbVCeuR/7gSEvp+OwEH2Oj23BjFPoAiizOtynN+y11gaHcvGn+aYl8vxpks0ehHUsdq2ZqbnY3HBy5yhFbPpqBzSezzdU13OApcDBecLhMKuQg9vVTzx8bV25Q2QGNzkWFCeakiBzUuxQmJP3d9YTWbZvI0m6qfxlinC1iuXJgXZEM2BubjBEDZKUVIw Sw7nFlG6 HVcwPPJG0ERDS6+Kc2spd7LK2Wfn4J2VYZmP4i8Mt4vX6GhPsUUq4O9SCEmJJ0aeoZhecinDWhq6n+Fug8SLfzCv7pVUYeRK8mxKevdQRQRp6MBdT3KdUHMl8eR9+efAOoJ1J6tq2C4ZWqlmTRboE1Zr4XphoUgfPpFLIe5nH5BPkb+VH/UlKb6nsH3QVV3wpH5Y82Lxr7D7l1ogWibXx3VrjRJ10HmfUqUw2m7OsHyO2l474+Uk0T+oSAUwGueiTT7UH9rg375/JLCRrIY8fSFip45pWRarWE+9e0vz5CZD2G7GdtS/QRhf7+Coj3eU1C79QY5muME8nVagfBaIXXOqkwvx92BG31XdWO4ZM7lLZbzNWm+Nc1w/FkZm9P/h+9guNQW2LyGzbr7M22gk81UL8qVNt2Cr9IRymGh5BnbTNfZxyr327xagxosRJxkdrE7n8tRPHidrXuk2FoFo72wP6PNlfAqLm+Me+Yks3n29wY5VtNBGRl3sXMl58bVdglAPkei+e3ZvAUKDC+WxfHWyGhAVR8WmKZk5fLSj9Z0FIQm+GQRsSaXr6hi/+DjNFNumzl8GYF2ZRnIU7fpqP89BELg== 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: --PrVZmVHSrLNPnUcY Content-Type: text/plain; charset=utf-8 Content-Disposition: inline On Thu, Mar 09, 2023 at 05:37:10PM -0500, Peter Xu wrote: > This is a new feature that controls how uffd-wp handles none ptes. When > it's set, the kernel will handle anonymous memory the same way as file > memory, by allowing the user to wr-protect unpopulated ptes. [...] Hi, Andrew, Could you add a fixup to this patch as attached? It contains two comment changes suggested by David, and also a oneliner fix to khugepaged (to bail out anon thp collapsing when seeing pte markers). The latter one was something I spot only later on. Thanks, -- Peter Xu --PrVZmVHSrLNPnUcY Content-Type: text/plain; charset=utf-8 Content-Disposition: attachment; filename="0001-fixup-mm-uffd-UFFD_FEATURE_WP_UNPOPULATED.patch" >From 085596bc8913349cbeb3ec3303815f71f1a34d89 Mon Sep 17 00:00:00 2001 From: Peter Xu Date: Tue, 21 Mar 2023 16:09:26 -0400 Subject: [PATCH] fixup! mm/uffd: UFFD_FEATURE_WP_UNPOPULATED Signed-off-by: Peter Xu --- Documentation/admin-guide/mm/userfaultfd.rst | 2 +- mm/khugepaged.c | 2 +- mm/mprotect.c | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Documentation/admin-guide/mm/userfaultfd.rst b/Documentation/admin-guide/mm/userfaultfd.rst index 16843d5a4f65..7c304e432205 100644 --- a/Documentation/admin-guide/mm/userfaultfd.rst +++ b/Documentation/admin-guide/mm/userfaultfd.rst @@ -226,7 +226,7 @@ For anonymous memory, ``ioctl(UFFDIO_WRITEPROTECT)`` will ignore none ptes (e.g. when pages are missing and not populated). For file-backed memories like shmem and hugetlbfs, none ptes will be write protected just like a present pte. In other words, there will be a userfaultfd write fault -message generated when writting to a missing page on file typed memories, +message generated when writing to a missing page on file typed memories, as long as the page range was write-protected before. Such a message will not be generated on anonymous memories by default. diff --git a/mm/khugepaged.c b/mm/khugepaged.c index bdde0a02811b..2a5372c49b82 100644 --- a/mm/khugepaged.c +++ b/mm/khugepaged.c @@ -1283,7 +1283,7 @@ static int hpage_collapse_scan_pmd(struct mm_struct *mm, * enabled swap entries. Please see * comment below for pte_uffd_wp(). */ - if (pte_swp_uffd_wp(pteval)) { + if (pte_swp_uffd_wp_any(pteval)) { result = SCAN_PTE_UFFD_WP; goto out_unmap; } diff --git a/mm/mprotect.c b/mm/mprotect.c index e27bbd0fde6f..b9da9a5f87fe 100644 --- a/mm/mprotect.c +++ b/mm/mprotect.c @@ -329,8 +329,8 @@ static inline int pmd_none_or_clear_bad_unless_trans_huge(pmd_t *pmd) } /* - * Return true if we want to split huge thps in change protection - * procedure, false otherwise. + * Return true if we want to split THPs into PTE mappings in change + * protection procedure, false otherwise. */ static inline bool pgtable_split_needed(struct vm_area_struct *vma, unsigned long cp_flags) -- 2.39.1 --PrVZmVHSrLNPnUcY--