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 2A750C61DA4 for ; Thu, 9 Mar 2023 22:37:20 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 8D13A280001; Thu, 9 Mar 2023 17:37:19 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 880AF6B0074; Thu, 9 Mar 2023 17:37:19 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 77842280001; Thu, 9 Mar 2023 17:37:19 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 679316B0072 for ; Thu, 9 Mar 2023 17:37:19 -0500 (EST) Received: from smtpin13.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 324911C69A5 for ; Thu, 9 Mar 2023 22:37:19 +0000 (UTC) X-FDA: 80550822198.13.5CC8813 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by imf11.hostedemail.com (Postfix) with ESMTP id 39B8040009 for ; Thu, 9 Mar 2023 22:37:17 +0000 (UTC) Authentication-Results: imf11.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=jHZsHySh; dmarc=pass (policy=none) header.from=redhat.com; spf=pass (imf11.hostedemail.com: domain of peterx@redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=peterx@redhat.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1678401437; 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: references:dkim-signature; bh=KDlNY98zejjvKZ/14cSb+fv+AsQvq/yadRcmqDsBLIE=; b=AFNKByFBvnvs+umOOqiy7CMKUdvRMp1SH1aZOf3yMcHpb4PSXpkqKqDzvmHvZ83AVS1PvN RrQ8ojAXIA5DE8Xe6PnT5ngTRiuLVtcHa3swp2vxwtLYqINm7SK8KnITXJkhQOM3gB9y1f B7mA7X09hEMMG5nptsDvvC/xx+Nq8fA= ARC-Authentication-Results: i=1; imf11.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=jHZsHySh; dmarc=pass (policy=none) header.from=redhat.com; spf=pass (imf11.hostedemail.com: domain of peterx@redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=peterx@redhat.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1678401437; a=rsa-sha256; cv=none; b=3iSNpfXg045TAxWyfmGO5Qsztnz0BLM+iN5kuC9rUhzDPWc9eYpPbuuWyigmKsn0CG28tw EEPOxfIibWAWfOgl3zfRT1ivGmaGuPL1imzllTJg47huMri3J/BNlMI54BLhaRfrvbzG+t M5Qlx4b6mN2DaDJGskqP359dYwhekx8= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1678401436; 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: content-transfer-encoding:content-transfer-encoding; bh=KDlNY98zejjvKZ/14cSb+fv+AsQvq/yadRcmqDsBLIE=; b=jHZsHyShsX06/nPouizcUqyoHYAeh+UvtsxgwBUMyNsr6LQcXaWC2jG9JpJ5iYT4uDRxSV IMsm1TiHOydYpxzdGkmLac9AZX8iTFmQd9o/VfUxwBV/PTA9lITnNFQv8aBn0Oi4skt/Ye nrEq8lelgutwBBKKCyXBIJdOPMV0+MU= 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_256_GCM_SHA384) id us-mta-130-vkcNZb5mP1u4TwztRLTQIg-1; Thu, 09 Mar 2023 17:37:15 -0500 X-MC-Unique: vkcNZb5mP1u4TwztRLTQIg-1 Received: by mail-qk1-f197.google.com with SMTP id ou5-20020a05620a620500b007423e532628so2061610qkn.5 for ; Thu, 09 Mar 2023 14:37:15 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1678401434; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=KDlNY98zejjvKZ/14cSb+fv+AsQvq/yadRcmqDsBLIE=; b=MzAsi7HizGZ7qZ0SPi2R4nEIvuKH263z8AHIBh1Vf+mywylZR6P690e1SrJJoC1cEH x27LYjWdwK999WFfq1phixaMIP0PwB2/MtDDCuPQs6W4GOHRLJoGb1J1qisA/wiVqfDo EZt8W0L3XcDCBTP8EH5b5r6BtdQEOqtXZ7pFr2PE/6lQOAMo563e5Jl2ZtzRrkCxnQaM xTztGn/LluXSrZwRiEywNqFwQVh+279gf4ngYq/znA7cio2CweL8xxzIU5weY0v5rkYl 4/j7TrFmc6swJGxId8aHwYPbD235SA0ABfEfmLhSbK/azu7+1C3C8sXxAnRZsyvc2FYk pRAQ== X-Gm-Message-State: AO0yUKWRrcVvDPQYFtqo57aXRZY2rfMyRsVPD3JZmuGHiA0XY5vHqhlE Wcrse16EmH/cqmZGV/36VdzU+HXFL47E8As9X6lkHMLTNy1K55GFgHIsZtwEuglLo5gUDKmSuz7 JWfuWOXEfdORN4oRWHbg0c0AehLQ5Fc1vomR1iPo3obk/+qlDuevzDAwnpEHCRlBY3dUo X-Received: by 2002:ac8:574a:0:b0:3bf:da3a:4e0f with SMTP id 10-20020ac8574a000000b003bfda3a4e0fmr1802896qtx.0.1678401434161; Thu, 09 Mar 2023 14:37:14 -0800 (PST) X-Google-Smtp-Source: AK7set9P4uTGnpMVcrQQivitUTi4qOLneX/yghiqHshMuPYNiJZztd1t8zdeZ1iKzxRa9+JirB++KQ== X-Received: by 2002:ac8:574a:0:b0:3bf:da3a:4e0f with SMTP id 10-20020ac8574a000000b003bfda3a4e0fmr1802858qtx.0.1678401433663; Thu, 09 Mar 2023 14:37:13 -0800 (PST) Received: from x1n.redhat.com (bras-base-aurron9127w-grc-56-70-30-145-63.dsl.bell.ca. [70.30.145.63]) by smtp.gmail.com with ESMTPSA id c26-20020ac84e1a000000b003b8484fdfccsm172215qtw.42.2023.03.09.14.37.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 09 Mar 2023 14:37:13 -0800 (PST) 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 , peterx@redhat.com, Andrew Morton Subject: [PATCH v4 0/2] mm/uffd: Add feature bit UFFD_FEATURE_WP_UNPOPULATED Date: Thu, 9 Mar 2023 17:37:09 -0500 Message-Id: <20230309223711.823547-1-peterx@redhat.com> X-Mailer: git-send-email 2.39.1 MIME-Version: 1.0 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 39B8040009 X-Rspamd-Server: rspam09 X-Rspam-User: X-Stat-Signature: 919g1gt64adsdupfu8kqb4zyg4j8ixnt X-HE-Tag: 1678401436-625479 X-HE-Meta: U2FsdGVkX1+W9/EFt/8t2cGp4eY02k4FO8OmSAeJbO8qvcvE7iIu+QmsfWuM17AbGJCSOUek+vqIlodR5iYWgilS7QUET6nMlfBbLJAtFBQUlwGDBxyGUCHNSHxC/BtGJF3XH1afATBql70vCm1p19KfKy9aOQ0QQGrfRVKyYefhpXJdUcnk8hU8Pxta2eBmMhYX5QMhSEq7nR60Gixg0ZBAiQXVy02ylqd+61K0ovCn+2gNDAfzJZaeygfHIvq2SNHvC+tADvHVaUv/HnlNuP9sQAZwRpk2KpYOffJqahWkE8OKKdbgdctgSr02Brg1Q9igxMpjQeztS3Ig8E362v0mBS0yooQyYIHOkJDrKkpRrGA1mujPgWkS8/6kzHbQ/zijr4pKilYvZiUDG8BeDC++8MjGD1ooqrKAXiV87LfTb8Es/t18j4IP5QGypLI+sYM63NSJuRKIAaKYDQuCeCX5CWX4CQrzf4a/zgoMdd07ppBRXKgVMpydeGcv32KZK8TRdEeA3BgdOBS20KAyepJ3f0PCCo+oAQprk377283zRRG1QyJLLavoL5ovalZwaQqwpWpL0PX64vewsZVQDfBFCmKmPk0INZDBdRQT9j//PRPhJlHw5Etu3RebolC8NoqxfgVHa8SqT7e5BjyvKMwgh7eCRgXOCzb8uOnZpEzcplqIh6qE5BHhJdBmI9g15hLJUk7y5zJCYCf+lZ8ykKpwC+KXsRkmwqYLc+1ISieeEj6ekVPsFEui6QabTYiqVvVBRT8ukCIYmTzi3v47YzQhqNj1q4T+wOey/e7kMbm/SveN8QfgR648ViW+JNAEfiKev6jbEyEec80HzwHtAMMU9PSPRCoV/N73w+IirvwI4RZCBm/yHc0E6TxckPCoPjMQoLMZoUoSMHTJvIRnKh7JR+dsIH3ecdm9t5oZhxO2R00wxQhiRiPeyeTpDIXwXsCnPsDCIQND62AeA0z l8ggHQoP 2+inluhBT/NvAFm+n0uX78+xoIM7z3+82xBhN8hyUWcVejvwx56ZiExVvcFm1untgVuaGPzTCzPSakKs90dIXqiRS9w/uTgS7l1bh1Kjihhg3lLAoBtpMPUO5gWCbxEOpyHFJ7MhiFoYrtyx6lUnb0wSfujvNax/WxkjL41feWKxiQ0820xudsSbQE3EFGHG8CgXAkD4llozVM056zi7cmhqqYsG4ntLScdJgsj8+mUZm5i1XBK4WA1GokiOM4Z8jIhhCVkos7UAize1w9WhWABUSOs2CupXAfn9oJsner8al/L1CcGDMRvK8/XvzMQA0+P0Sv1orHMuS1qtIvDcXVrOk3HdJE1wzpYbwVXVkbrXJ0LMgg5O4MlH8YnRwNx7eWX0ZKfjLkzTcZTVh3utMrNMZv32QpThTqhEtVKR9V761RU1FUra2gV6fsAy9lQi/I82hkEarEtb3MqlVf4scb9u6fidk2h4LCQqjELVcMWaDGGKTSQ4SobRQWjSzxqGFpJSd/MDyPqClgMeaae8AYfelmrCVWlsUSsK14e4jA+iHKqykqTtunr2u+UEsPPtKNR30wzFVPpqYBH8= 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: v1: https://lore.kernel.org/r/20230215210257.224243-1-peterx@redhat.com v2: https://lore.kernel.org/r/20230227230044.1596744-1-peterx@redhat.com v3: https://lore.kernel.org/r/20230306213925.617814-1-peterx@redhat.com v4: - s/handle_pte_missing/do_pte_missing/, fix spellings, etc. [David] - Add a helper userfaultfd_wp_use_markers() [David] - Update userfaultfd.rst describing the new feature bit The new feature bit will make anonymous memory acts the same like file memory on userfaultfd-wp in that it'll also wr-protect none ptes. It can be useful in two cases: (1) Uffd-wp app that needs to wr-protect none ptes like QEMU snapshot, so pre-fault can be replaced by enabling this flag and speed up protections (2) It helps to implement async uffd-wp mode that Muhammad is working on [1] It's debateable whether this is the most ideal solution because with the new feature bit set, wr-protect none pte needs to pre-populate the pgtables to the last level (PAGE_SIZE). But it seems fine so far to service either purpose above, so we can leave optimizations for later. The series brings pte markers to anonymous memory too. There's some change in the common mm code path in the 1st patch, great to have some eye looking at it, but hopefully they're still relatively straightforward. Thanks, [1] https://lore.kernel.org/all/Y+v2HJ8+3i%2FKzDBu@x1n/ Peter Xu (2): mm/uffd: UFFD_FEATURE_WP_UNPOPULATED selftests/mm: Smoke test UFFD_FEATURE_WP_UNPOPULATED Documentation/admin-guide/mm/userfaultfd.rst | 17 ++++++ fs/userfaultfd.c | 16 ++++++ include/linux/mm_inline.h | 6 +++ include/linux/userfaultfd_k.h | 23 ++++++++ include/uapi/linux/userfaultfd.h | 10 +++- mm/memory.c | 56 +++++++++++++++----- mm/mprotect.c | 51 ++++++++++++++---- tools/testing/selftests/mm/userfaultfd.c | 45 +++++++++++++++- 8 files changed, 197 insertions(+), 27 deletions(-) -- 2.39.1