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 F1A5AC64EC4 for ; Thu, 9 Mar 2023 22:28:08 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 92620280002; Thu, 9 Mar 2023 17:28:08 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 8D5296B0074; Thu, 9 Mar 2023 17:28:08 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 7C470280002; Thu, 9 Mar 2023 17:28:08 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 6B3726B0072 for ; Thu, 9 Mar 2023 17:28:08 -0500 (EST) Received: from smtpin14.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 3F0661609DD for ; Thu, 9 Mar 2023 22:28:08 +0000 (UTC) X-FDA: 80550799056.14.D27E2E9 Received: from mail-lf1-f45.google.com (mail-lf1-f45.google.com [209.85.167.45]) by imf16.hostedemail.com (Postfix) with ESMTP id 5BD99180005 for ; Thu, 9 Mar 2023 22:28:06 +0000 (UTC) Authentication-Results: imf16.hostedemail.com; dkim=pass header.d=google.com header.s=20210112 header.b=ticBqftL; spf=pass (imf16.hostedemail.com: domain of axelrasmussen@google.com designates 209.85.167.45 as permitted sender) smtp.mailfrom=axelrasmussen@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1678400886; 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=29CZKSnro71XuZ/X2KIXin8EzPbyFRqqtGaiLs6Be54=; b=Eydye62YmrZhlZehLs4EW0g9fW3Nd9oF0x0IZQf7gtTODGWDJnC0dUaP7Pq35xIWYTZMLV 75Mu7nSyr2bDDXOuFwhvLi+ExJ+SafnQycCvDDwnSViN+DNMBHfBKjjgHD4hByd7L0thae bgqQL3pB90SEhzuUsq/SMlTPBAmO2Gc= ARC-Authentication-Results: i=1; imf16.hostedemail.com; dkim=pass header.d=google.com header.s=20210112 header.b=ticBqftL; spf=pass (imf16.hostedemail.com: domain of axelrasmussen@google.com designates 209.85.167.45 as permitted sender) smtp.mailfrom=axelrasmussen@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1678400886; a=rsa-sha256; cv=none; b=001HJ2zGr6ZZTdqP19atipd73akXDU5zK0ydeitWbMT3uaccxi5gUrpBAAxwnO16iiu+Ja 0hWJXIIQktj67a5I6Q36Mzr5AK8JLy0y+gd/cJgZS8HiujCyYnNIzOa41+3wbEuTr+nTb9 w21eWyz+VZGo9OrLUL16ns66SWfH+/M= Received: by mail-lf1-f45.google.com with SMTP id i9so4239794lfc.6 for ; Thu, 09 Mar 2023 14:28:05 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; t=1678400884; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=29CZKSnro71XuZ/X2KIXin8EzPbyFRqqtGaiLs6Be54=; b=ticBqftLOEJj1O6T3FL+5n3IsSOfX3ueB2Y43c8FDQ4uOap3RiQmFGRUOH0CB76bmW N4BGaFG13x1VB9kT7Z8vnkrRrGYaw77ky/ykS/Jmwl71i3RmTDV4O+xeeuwHr4iE1dgv JAIyFgMl9jpJ+0UVxiYjYFnwr670JmKMbOVIwPKo69cU7FGny9TbyTP+gLuuGLQLE3Zv fzD3zBQe5tY7651xIBF57WbqmhFJ4mUepK3lQQ0vSdYk9sw/A2m4DRm7oq0l+v72ZL69 eL7guQznFBOxwk8BviPN0K1jHCUmLQTgJCAAjCSb0wk3j4VK5EL/MjbBQnCJSWtqCsuC JtSw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1678400884; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=29CZKSnro71XuZ/X2KIXin8EzPbyFRqqtGaiLs6Be54=; b=40AC57ksGf7PYRfW4k/QBFxja8McW3AuVjhgwLUc9peckkjzY9PfBfjCETw02soaTT hmPlrnjV0OJbaKvtPf+sqpxi5RlPC5p0ZPi5f9kNF70TS1FIm4btaMrzjg3t72rZ0Oj2 c8YPhuMuypDpRYNHyC6cVqR6x8G3Xi7guuDw30w7P44i3p19z+9fGynhkn3W//AORuv4 t8y7beYQ+v5HVCnn1FoO4muCFl/JDagB9Z5m+ALljBpUxYN1L0a470DfkHrYnI+eIqr3 3GFiqN3cfb9xN16WUjAOMWD6nhQZ2/80k/6VznpftoJ5DJ/hR5p39nMt4yiLGzTq30jz kRMA== X-Gm-Message-State: AO0yUKUagRDVz+SXS8kGh+BN5UgmnQ30A+KBpBOOTItWHGk9P8zVUZIu 4MH/yVIoMji79J6nYOEnRmy9lZOyOGyOTX5b8a9sWw== X-Google-Smtp-Source: AK7set8XKEHB+Eqae38HNHUfYvdzRQBggEBNTeVTBQ831nGlT2poOPKyEfQFXV6pveIx4Q21go/izYSd6MSOZsP2EmI= X-Received: by 2002:ac2:53aa:0:b0:4dc:807a:d140 with SMTP id j10-20020ac253aa000000b004dc807ad140mr7177100lfh.10.1678400884282; Thu, 09 Mar 2023 14:28:04 -0800 (PST) MIME-Version: 1.0 References: <20230308221932.1548827-1-axelrasmussen@google.com> <20230308221932.1548827-5-axelrasmussen@google.com> In-Reply-To: From: Axel Rasmussen Date: Thu, 9 Mar 2023 14:27:27 -0800 Message-ID: Subject: Re: [PATCH v4 4/4] mm: userfaultfd: add UFFDIO_CONTINUE_MODE_WP to install WP PTEs To: Mike Rapoport Cc: Alexander Viro , Andrew Morton , Hugh Dickins , Jan Kara , "Liam R. Howlett" , Matthew Wilcox , Mike Kravetz , Muchun Song , Nadav Amit , Peter Xu , Shuah Khan , James Houghton , linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, linux-kselftest@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: 5BD99180005 X-Stat-Signature: yhtfy6w75apjkibck8h8wrfhwfjt68h4 X-Rspam-User: X-Rspamd-Server: rspam08 X-HE-Tag: 1678400886-31915 X-HE-Meta: U2FsdGVkX1+uCX+RJuq7T04jg0+zJ7x25VWFy9u/KHZqT7ojSMxnpH6Uz4HvJV0LyMWZpNws8GcElMPfM4visxjxgV+rPhD63tTt3qZ1+Ddmb40mWJ3jtCNtaCPXMi9UEddIKWyIWBaDf70weqTaGves1yVwwJKxvmGWXYzOmdORiaPCu2jOaPA9cNRmOf7abp52RyZhgn91nvj4DWSObiIu7Z1K+SY1HtmOGnOSEgZeQJ0ZOdlpjB7bP85s/gBDNp5Dmb/x1ULNrKi8JT8fIBRYd9S7nUxWDExsLO/6FTViHvQafFlQpbSqyaLa5HF/Ia3jnzAvfQ0X5dIuaIx9FxGhaJYZgcAmctVyrFxk/FZOd8xBzpowFVZ7+nJnAi4piVQuhSqpp1QyOB3rOwKHzXg4jeF/sJkNBX+Cury56iMuYiFTXuZhikocipO/RYzE7IR640gVHkMwaWuOc1bsAIZPDAgBSOspJ+0MadAYD56CYrYtK5RcwoGI8tlyV1wsgFJKzTAbAAE+8SpMvpnvVvqMy48R5TJLIedvavCw8FmaioNnIspdaZ7QY/yKmBrqOIEXuBlrR9cOeq/DVsIQHGMh9YPzsl0fcGqEnSt7Gp3V+RdFHCXPTVk5V2blU4p3V+aGvBs5b0mvggc5lK49ZLMzikSNnu5AZRfBUZxiKTc2fBfeg1bpsj39MW/eCVPt+6DWT4S0Vh1DJDrMeEOZPL2+xoY87A/mtFwB71c74cqBEFJ3dJEQwENzYpVej7aTDz7qtX2SZRuSDflaq8DTekrj7qSxxEVdEIf48UJd+U8UWlMEKVJlOoRiyfYSeRR8+YJbMHeU7s0A6r3mj5wEI3yIVAPPlCkJLwt6vIBijRImeWukLa6DtHCdWRpduGK5t5Ys5Cks6qRXCs4dM4yrSeeiBTY7Lwr4BwXORh4QZN/3HBtPjHLpc3IUBrN6/JKq8eTWQVVzwxcQAxD7Jhm /dGLj6Lw 05XXTkGs/1kP/GnisD6tFEM2S+ULshW3o1K3iGAZirAD/VEY7P1a1AK5ZTzSMbj6ANMfLdC/HZ33mH2bT5vysBn8SAzIy5Q20dVVTRLCBrKEFa1nY0/ZgXv98x/l3iGHSwu8qUkQOHvHWc8xgQW7sN5QfFuIrXEkYn5638RFuQtRl1mOiVwYrL3Y6XtcKZMiuUR+DMNd45V4/9jXFbrHTPjSNpvjSr9wGPtpsOJyCgZXSwPNj5z+yOXvfqV3p2ns47lWs6Na+uTjCxUWvmF/pz5egUmTqVxwGxPWsoxQDsKxE7MgocLfCpC8RUQaP2wEDErYe5YBa/1sLMyc8ovzrxfHEsGe2r64XFfybQKDwez7eAjaURFw0r6WqHkyOnAXxM2wANEEpVRpGkSo= 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, Mar 9, 2023 at 1:11=E2=80=AFAM Mike Rapoport wrot= e: > > On Wed, Mar 08, 2023 at 02:19:32PM -0800, Axel Rasmussen wrote: > > UFFDIO_COPY already has UFFDIO_COPY_MODE_WP, so when installing a new > > PTE to resolve a missing fault, one can install a write-protected one. > > This is useful when using UFFDIO_REGISTER_MODE_{MISSING,WP} in > > combination. > > > > This was motivated by testing HugeTLB HGM [1], and in particular its > > interaction with userfaultfd features. Existing userfaultfd code > > supports using WP and MINOR modes together (i.e. you can register an > > area with both enabled), but without this CONTINUE flag the combination > > is in practice unusable. > > > > So, add an analogous UFFDIO_CONTINUE_MODE_WP, which does the same thing > > as UFFDIO_COPY_MODE_WP, but for *minor* faults. > > > > Update the selftest to do some very basic exercising of the new flag. > > > > [1]: https://patchwork.kernel.org/project/linux-mm/cover/20230218002819= .1486479-1-jthoughton@google.com/ > > > > Acked-by: Peter Xu > > Signed-off-by: Axel Rasmussen > > Acked-by: Mike Rapoport (IBM) > > > --- > > fs/userfaultfd.c | 8 ++++++-- > > include/linux/userfaultfd_k.h | 3 ++- > > include/uapi/linux/userfaultfd.h | 7 +++++++ > > mm/userfaultfd.c | 5 +++-- > > tools/testing/selftests/mm/userfaultfd.c | 4 ++++ > > 5 files changed, 22 insertions(+), 5 deletions(-) > > > > diff --git a/include/uapi/linux/userfaultfd.h b/include/uapi/linux/user= faultfd.h > > index 005e5e306266..14059a0861bf 100644 > > --- a/include/uapi/linux/userfaultfd.h > > +++ b/include/uapi/linux/userfaultfd.h > > @@ -297,6 +297,13 @@ struct uffdio_writeprotect { > > struct uffdio_continue { > > struct uffdio_range range; > > #define UFFDIO_CONTINUE_MODE_DONTWAKE ((__u64)1<<0) > > + /* > > + * UFFDIO_CONTINUE_MODE_WP will map the page write protected on > > + * the fly. UFFDIO_CONTINUE_MODE_WP is available only if the > > + * write protected ioctl is implemented for the range > > + * according to the uffdio_register.ioctls. > > + */ > > +#define UFFDIO_CONTINUE_MODE_WP ((__u64)1<<1) > > Please add the description of the new flag to Documentation/ and to the > userfaultfd man pages. Funny enough, neither flag is mentioned in Documentation/ today - I'll add a short passage about both. Happy to update the man pages as well, I'll send that patch separately. Thanks for reviewing! > > > __u64 mode; > > > > /* > > -- > Sincerely yours, > Mike.