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 A8196C52D6F for ; Wed, 21 Aug 2024 08:41:58 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 325186B00DB; Wed, 21 Aug 2024 04:41:58 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 2ADE06B00DC; Wed, 21 Aug 2024 04:41:58 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 0B3B36B00DD; Wed, 21 Aug 2024 04:41:58 -0400 (EDT) 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 D78736B00DB for ; Wed, 21 Aug 2024 04:41:57 -0400 (EDT) Received: from smtpin11.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 7E0F9160AF0 for ; Wed, 21 Aug 2024 08:41:57 +0000 (UTC) X-FDA: 82475609874.11.D1A22A7 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by imf01.hostedemail.com (Postfix) with ESMTP id 39E0440003 for ; Wed, 21 Aug 2024 08:41:54 +0000 (UTC) Authentication-Results: imf01.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2023-11-20 header.b=gFcOb7Pd; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b="D/Ojpc3/"; spf=pass (imf01.hostedemail.com: domain of lorenzo.stoakes@oracle.com designates 205.220.177.32 as permitted sender) smtp.mailfrom=lorenzo.stoakes@oracle.com; dmarc=pass (policy=reject) header.from=oracle.com; arc=pass ("microsoft.com:s=arcselector10001:i=1") ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1724229674; 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=ICDh9Ag24B0bRfFmUdUNDpopRX9+NMcJgpbyl5gFyy8=; b=mYxm0sZnc2OLvD4f33rBfTec5SNwi5tMXKETAEQjg1s2IaNoaVWVHYx0ybV0QR67TDq1Ix W4CgucbhJFLhlMUEYtjyNtSGughaH6jfoCYynSe6fD6LEqL0tKAYgq/v51GxWnNz4c/AUP /fVRo+YLMRbKdccdsp2ReltPZsIYBlk= ARC-Authentication-Results: i=2; imf01.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2023-11-20 header.b=gFcOb7Pd; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b="D/Ojpc3/"; spf=pass (imf01.hostedemail.com: domain of lorenzo.stoakes@oracle.com designates 205.220.177.32 as permitted sender) smtp.mailfrom=lorenzo.stoakes@oracle.com; dmarc=pass (policy=reject) header.from=oracle.com; arc=pass ("microsoft.com:s=arcselector10001:i=1") ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1724229674; a=rsa-sha256; cv=pass; b=wHrl0rsnpMPqW6AP667h4t+eRk4qIuQgxV1BO076BzJ3gAx5hNwijFWRObgrbcAyhRXk8v RqMurl6e32+EA7niPX2BBBnrp9hhvO3JdzetwhFtFpDxYEPieSbkFP1YcD0Wa3FTSTwnx9 8KiErjtedj0MVEtmtR2fv6wnFI7jwkk= Received: from pps.filterd (m0246631.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 47L7tTna015416; Wed, 21 Aug 2024 08:41:41 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h= date:from:to:cc:subject:message-id:references:content-type :in-reply-to:mime-version; s=corp-2023-11-20; bh=ICDh9Ag24B0bRfF mUdUNDpopRX9+NMcJgpbyl5gFyy8=; b=gFcOb7Pdsz6kh97td6s40XhWt/xt9sg goNRSy/cE0OXRdu5Mc7qe0PwaehZ88HszF/OGPcRzlmc9mbl+mZrKvJR45JZ41/7 bXIwP+WBdEgKrqjtc7VKwP9bUOWaCGJCE4ooNfYIYK9EE9C3WGSBrUfsM1VVjiiO D42gCpsynpmxBHLepfjWhsQCuWvhcpe2prpYqEhSmm2BlAy+m9MV4P9H4lV5TDZF AskM2WShlVDiTtIDu5x5OJY2Rc4PnXV64wgMdaeabcmhVK76ISL6Uh5LpuBarheM o1mcqqGIyW7oK+ZhcSyJ8xOIPlWHyKyNpMhqV/vx1lZ7nueKqrUootQ== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 412m2df2gr-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 21 Aug 2024 08:41:41 +0000 (GMT) Received: from pps.filterd (phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 47L7TIRV038638; Wed, 21 Aug 2024 08:41:40 GMT Received: from nam02-dm3-obe.outbound.protection.outlook.com (mail-dm3nam02lp2045.outbound.protection.outlook.com [104.47.56.45]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 415bw32p40-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 21 Aug 2024 08:41:40 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=JCGeUc/8jAPIA0rzdrHuwSXXORi1vRuSGW9cnAVcjvGy8zT1YuZQ3DrVXTz+hIe4rP5HKh00QnEdMOS9wprMxHq2hupjygvoIoe+IpkZMkw5W758irx9VHqpzVhrvhRuH2kbCeGH4VPYyySGD1gtMr/gtkLEhBOZ6IruClnUvTwiat3+IzUVoy04/tnzrN2H8KWZqDAQp8aEJ3pzw2+hWsK1fUvn4wn0jlVn4rK/ZP4RO4kyCU5QYnvoQOkI4bepcleWc20fdCEiHUaxE4gPxp7+jjtOuSpuwB93xu10/APkVD0PofGVrpqNKE6Cp5hv1j4PpuqfR2hI6xE0l+bm6w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=ICDh9Ag24B0bRfFmUdUNDpopRX9+NMcJgpbyl5gFyy8=; b=UMYBklCJbHbl48ymPt8vJAskTGoa6mjmv9zGfhJO5dfEDm3GmLvxUm3Uts7LZRoXCYu/z1tzG98/W/W67CgnSstyWd/ZriPQRrNl+bzwQ/gSjxWbP5MfN5BUOR87Fx+cYYrt+cwMHaX2oRIIQzbT3FJbAMszTy1f15Rjv6M32eZf2My6FSN0ShgqqIGE9Iwn7wKbiG51OF/WNE+zIadsP3y6Mbhmt02cPm4sHjBqHz/nerwg8A5C4O8+Mfixn8tGxkaTX7C6tEaTsElSpPpF0hF1SAUK8DH0s10/CzZgYHU7aAajgFwjZ90ECy5xKs4enenFCSOHrNKxbftYCqf5yw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ICDh9Ag24B0bRfFmUdUNDpopRX9+NMcJgpbyl5gFyy8=; b=D/Ojpc3/wxP6ctq9WH7rUocopuDEVkbP7rjaEBIuj6HoL+ycHOOLSUP6V1/WIZ2NEdhZtKSC4jl2I93nobBN2eRnqUpxmk8D969Bo7vo03ZxvtteQ2dtwvSGFnnObw1BxWXNWsXmjhJ3tBSPD2imOAHWnGDC/gAmo3k81jIFASo= Received: from SJ0PR10MB5613.namprd10.prod.outlook.com (2603:10b6:a03:3d0::5) by SA2PR10MB4764.namprd10.prod.outlook.com (2603:10b6:806:115::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7897.19; Wed, 21 Aug 2024 08:41:33 +0000 Received: from SJ0PR10MB5613.namprd10.prod.outlook.com ([fe80::4239:cf6f:9caa:940e]) by SJ0PR10MB5613.namprd10.prod.outlook.com ([fe80::4239:cf6f:9caa:940e%6]) with mapi id 15.20.7897.014; Wed, 21 Aug 2024 08:41:33 +0000 Date: Wed, 21 Aug 2024 09:41:29 +0100 From: Lorenzo Stoakes To: Pedro Falcato Cc: Andrew Morton , "Liam R. Howlett" , Vlastimil Babka , Shuah Khan , linux-mm@kvack.org, linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, jeffxu@chromium.org, oliver.sang@intel.com, torvalds@linux-foundation.org, Michael Ellerman , Kees Cook Subject: Re: [PATCH v3 5/7] mseal: Replace can_modify_mm_madv with a vma variant Message-ID: <7e31d62f-45b2-4b37-a6bb-96b7934a66c2@lucifer.local> References: <20240817-mseal-depessimize-v3-0-d8d2e037df30@gmail.com> <20240817-mseal-depessimize-v3-5-d8d2e037df30@gmail.com> Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20240817-mseal-depessimize-v3-5-d8d2e037df30@gmail.com> X-ClientProxiedBy: LO2P265CA0058.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:60::22) To SJ0PR10MB5613.namprd10.prod.outlook.com (2603:10b6:a03:3d0::5) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ0PR10MB5613:EE_|SA2PR10MB4764:EE_ X-MS-Office365-Filtering-Correlation-Id: e74e82c3-5bb3-410f-1b9d-08dcc1bd0f2b X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|7416014|376014|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?Op+lNWrtY5KfU87gf2X3PsfJD6Fs0pXM/uBunqROlavxMgzcTAHB6RTb/3Fd?= =?us-ascii?Q?9S/Lh6flr6TnerZocy3BbnuoagR2PThE2IzK1upu73Ptb1glvhG32BDhZ2fN?= =?us-ascii?Q?pOEwFf2wKAXiPvKC03unmhzWKKmy9GrcdweaFgLnhw5vCgrtU39evmpaiqZb?= =?us-ascii?Q?mDT/RLxA06kw18LOfdqO+nWZqdBaSUqrKaYI2kmSq4sOucCcIDaiFoXTqZL3?= =?us-ascii?Q?nRZQo5EKNNBEBfKo+1Vg5ob1uOqYunigQvTG/PJyzva4K3VYATastR+iSfYe?= =?us-ascii?Q?FMcdA4QwGeY1SaVGfyd1jQnDT+Rh7O+Owje6bfAPufkkEBUVc6/l6QNf3PBR?= =?us-ascii?Q?Bv4a+ELMFYue75DjQWLHMJLkP8KTrCCTT9tR88AL3BluFNZOwArV99EJrrWh?= =?us-ascii?Q?DMbq6lIlLwJluCpjZC8TOmW1OgZnxVfySZQ52dWXGVSkZt5tbmx4CZuxo/8h?= =?us-ascii?Q?M6X5gAT8ib1eDv6DZiuYqzwD2bALb3qwxwEjUVJZ319URL2tLk3X0M3wsEw/?= =?us-ascii?Q?cM6/efLUuLI1nq/kEjItqymndxNub0KQVEL+qwM7g/WRxvpvQ4aNYzlYLtUb?= =?us-ascii?Q?u3qHsvHDvwem01IzlVxF+UwMOvDs759IG3RqmJQ6nJOeonKXo4AdaAjVpKkM?= =?us-ascii?Q?S3wZ66UeKQmPHMmBumNhBMtp9YOdCPyPWtc3dpGRtX82DF609j13ZAPx/nJ5?= =?us-ascii?Q?qqYOm9zJj7fZYXOu0rkckfpmeqzDwkj6xTsYr5bxlW/EV/8IscY6QfvHN7em?= =?us-ascii?Q?qtI/CRK/pmUIpGAvlVL/uDf22no9YRm0UptwuiyGt+prp06maNyKXJyiEbEM?= =?us-ascii?Q?/ZnC00OoXt18T5oLJvA5vb0Ktv8FzpMkFKsFT/C/6J3h3wBBfGIBGOk0da4d?= =?us-ascii?Q?8DJy0Ne58LofGdwHdAxSjtHMB7yOLXKhyQwNjE0PNa8ETOJFd8gxiYugvBMq?= =?us-ascii?Q?kZF7vnI68VPL94CBM6iJE+bjphEc+ubWmhGEdf+Wv7LrJa40MbMWKyHWmJNw?= =?us-ascii?Q?IGjlUmGEq49rHoV86f4819tLrs9z4+4Y02Wy9Js3hMp9nyK1k/VQv22t/oS7?= =?us-ascii?Q?N06DQOVt39lU7aveM15YMfHVH0mkS12ZuKN5p0K/p0K4W5Hsoju9oC5bVjj3?= =?us-ascii?Q?E3EjIBa5lbztQ7XRBwLDCQAkmBmwYLD/qbwnS3RE3fpzSWT6wzUR1U1TdasJ?= =?us-ascii?Q?N8IRST5+LJ0Ucu9Tb54INwNuS8M0UNk2VBJBe6KRiXC+Gu4f+LyKsFp7h8Fa?= =?us-ascii?Q?NgE/ozHeB7SWHuIAeWY47iQq3PAh+ZqPiK+wV6FHsGhPVXHLWJn8Vr0N/gPn?= =?us-ascii?Q?HFgRlwm+k/vsW6Y1OdmL7p+yIxeELZEjlOC8CwQ3OnKD9g=3D=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SJ0PR10MB5613.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(7416014)(376014)(1800799024);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?ZlBpkJ64NfDfjltJSSQzs2QVtbqLHe83J+sEv3oOCXBZVby4106hoOJCnDFq?= =?us-ascii?Q?ZmQDa/GKK+5+IB1qP3EmP7HSHQiX3QWTA67ljm2D/i+7/9s8eZQ9k35VLVJF?= =?us-ascii?Q?jVuS5uGY7zhstbWmi8tJIaub+V258XZTNbb4/d2wyg5WbUxqPTaqwCLkG8hH?= =?us-ascii?Q?m2zl6wa7Zt9SD4j+Bg0z/w251l7hKWurBBEfce1T+I8FJjZSjse2CjQ3SKvw?= =?us-ascii?Q?ci8ilnvA0+b4Vg9axVJimjD/mJ4qCH6OUpUgrIeURYOyfVg30pUO4wM+4izs?= =?us-ascii?Q?OS2VY5xZGIt497EJ2fBnNGXS+lHmv4W9Nxx5TWxy7wkiOS0tKDRUK01AlG4Q?= =?us-ascii?Q?BjbnTL2a/0octYhYwfUaLqpzt2QglU3ogkbtudsQIka61q2itnsRst/Yyt60?= =?us-ascii?Q?s/dlKx9Q6QTBCRw4lGqRxlIh/d84czttKFnmv9WAptCksEUWS2DVbzXwjzIw?= =?us-ascii?Q?fUq/He0L1fLfuTYY35HNbEFsFNuV9PCyz74z3b0l4QcRoYYJVgiUvXNdjO5p?= =?us-ascii?Q?/C8UK8QW3T9iDjoJP2GiE+NVlUbl5Q61RcG7BsqAtIY6GrN7eD+s+rqg8Mx2?= =?us-ascii?Q?mQKdkhPUNW8Mx1x6Ei8+7pHxgJZkIYhwZsb+cIbSx4chbV409oy9O/gwJ9tx?= =?us-ascii?Q?uUegRlHms8u19nLJk4k6qIjRItD0698qYY5Je1up4Yg62YqIEc4FLFuY4oFO?= =?us-ascii?Q?J7BovQV6eva+jJT01uD/tVBVJsg2hiKPvKQFzlgPy/Me/DCvcMojKeSjKryo?= =?us-ascii?Q?8/38Tl6eWoWGRhKZhk1q3SKioDF2N5dhjACsEpqAHtOkIHm49jfEpb76ZvsK?= =?us-ascii?Q?g+ri+N0E/nIOczJRgEo1x/2VAcsevdKg6HkzjDXKnu9XEq6Z4kNKyHfSbQLj?= =?us-ascii?Q?Dhts8QkFWk77XSxIfxVfqQjnFyg7KckiXayu7N1vdNcvWuGg/0geyHSTC7DQ?= =?us-ascii?Q?Mr65cqNGJrA2QWNWZCEeDtsLhw7gVV4CADZmAfuN1pY9SLgkx2FyQcW1/tVC?= =?us-ascii?Q?0SzqDqHEgg812LtToBFL+zzt8BC4vaG/Ol6NzLqAWwh/a7fc0CGRXRcEpOjs?= =?us-ascii?Q?dhfQ37np74dhrYOlJNUkJVpLf8xUKVJdMvo27uxqKJDVoJbl0YfEa0FCwmy4?= =?us-ascii?Q?g08H8innvnt4moBjX0UrZCqQVq7r7vlzIPTd03Ux1q8SL08ZoDelbn/KHRVr?= =?us-ascii?Q?7KY4XjBd9X5W6gLP6Omz7CFkBqVl/zO+ilbnt5Vcy11Q0G3ZOgPVMYKJC0ib?= =?us-ascii?Q?kuQcu5hPZe82sE6RYLjbhHwV2AFySlvn4I4Mmw7HyEfjvewLQsZa+dKJUVnb?= =?us-ascii?Q?t5jKAME3va04lzqvo8xflE1cfGhfL8QqPNwNZXtDfST65XfNGzpjMyzOyvvV?= =?us-ascii?Q?+osQNVW+glH4bmOFTcyWNfdY1ssoqvuKFdRVsrtr4CZOddix6uStx79pyjQS?= =?us-ascii?Q?Woytnv+G+J/ZTenK9mx8Sn7+DUBlS53vmXOmg4iruIrjyuzUFO1YrpMbXAgo?= =?us-ascii?Q?hxgv2CXx4cV/TWPI7JosLCNXLDfqo+NgXfvQGyy1jtWW2Uc0RvLML6GoRldJ?= =?us-ascii?Q?rZ4u0h3P76fhUgtBrqwFtXJ0pmPpbKNCpo/4Kl0lNJSMLmiG6TMgFguEeNMz?= =?us-ascii?Q?duj0dQ90+vQcdeenebEbybj82CMVxmKfOLsjn3VsPecJNXppvLyQTrP3RzO3?= =?us-ascii?Q?WCpMNA=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: b3iNbboIksw8dMUBhi1cKlYflu+6SAaOjDrWXyRI9jXyn/6dmclt6xx61AESUViIkU9vJyPFfxTx4TsJ/yxUBG6P5fpxbup0+ohBbGzLlNtkhJNdHTpqfavF8+BqAe5JdFUWYTfMgag4oxRYP58tEpvbErRi48oGTC/CEzybdaaoorLNfwEpNpZOI/sHIjH1GIsbLPcBtmiHZaxUNKeURQaQGL0TMpHMIFhkbwYVv5ebcAcZk+RlIAWqQ1T+HPnPhvLpIR7cgznihUMKryk6c3ZSwQAn2GoueQ1TqFaRroPPf2OlKuSLAOap8+ojM5BodH0bl5zNC+QbF2bK8LdVmislSxAcr4PqZ5rDGcLczi9SzbpouehOqTOBKdV37vcTHJZYkltMzlc1yBnkQqvO8dxlDMpf8mBzfJymp5QBT0qNSNpmsv3FKvA1MwR66GZ8rjrbygvsIDQ4UdpsfCQilIE0xnzjQ14VRFDADuZjpoRbch3Kr1jiiQo6WhuFSKu/F2fD1Jdv5gTnWdZwPjWyYqsnwFDAPAMsWaRXY1DCiNpDhVLDM54bARVrQMPuPSLkn++7fQioh2XDWYnkgzJRYA5sAUR1puLyTw7cJwRpDXk= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: e74e82c3-5bb3-410f-1b9d-08dcc1bd0f2b X-MS-Exchange-CrossTenant-AuthSource: SJ0PR10MB5613.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Aug 2024 08:41:32.9661 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: +2w3KBkuVOexPhzhV+epj26avGWb2RZ1dgrrXZu0piXHBf6f5kZtf86+maNkpYLyhCqvFolKQwkTtsVbWAp/hVfYmrxEYv5gkopA48Blq74= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA2PR10MB4764 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1039,Hydra:6.0.680,FMLib:17.12.28.16 definitions=2024-08-21_07,2024-08-19_03,2024-05-17_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 bulkscore=0 suspectscore=0 malwarescore=0 mlxscore=0 phishscore=0 mlxlogscore=796 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2407110000 definitions=main-2408210057 X-Proofpoint-GUID: hzv-ysw7GqWmvooV6iKuXy8cfh88T5fZ X-Proofpoint-ORIG-GUID: hzv-ysw7GqWmvooV6iKuXy8cfh88T5fZ X-Rspamd-Server: rspam03 X-Rspam-User: X-Rspamd-Queue-Id: 39E0440003 X-Stat-Signature: d15gfdct64f5ji85gxo8jxi3prtxx9e5 X-HE-Tag: 1724229714-710362 X-HE-Meta: U2FsdGVkX1/EJkD1YP/U49o6KUF5tM9S1147fybGw6ddXAoukFotC4e8614IjbNrJirdJpA9J16GbvEg41cQ0jaLsbpdD0K1MP7xh5sVTaVv6x6+bZspEiEocVjdlJT9LMVDWgFS2V/y0+811spRAt50LAhWl7WHyNVE2XY3Q+nI/6A9FdgEJT7S9Jkh/vw+2ms8INwElHCKSJSKRtDmfcwfM0Do16pSTKOmmaysUHKrknC5csAVXR1R+1FT3YbAWQORG8reRdbIKirPywM5nIluK0vKvSBqOmTokmofnetp54y9bIn7rBGmjecEMvxFbZGnz5RPaR3CrIdmRq2DG3O2fNQduokrvgJTdllVR9C2ux14x6t+CadS0d9z/KvlpXk8vSbRL95Aq4MFZ0ZiLoaejLqFMGIQ9Q5NHBso3xJHt1JNPsJzS3fmlYanrTTEgHeYTCQdQwnZwCZh50ogk15oc+QcKr5qbZ0Hx+HgFZrHo5AQITV4RE7snlsY82WdX3HiUCVPsUZ0UVE/fYsWNj7xofUHKj8GRRAVPdCWG0CdsBAwdDVJV4sfaP6157zF03G5YgyF7RnOfMhGXlROvVxAg6LHFtBd+tpMGRfSQb83qANIbjU2o5fnvzFCsK0z/ooNPc/LIvza4dNWnTAIPeYNcCBHB1h2Yv/Hoy6Cu9Z8OfKzXYE/MfR3hsLWVC5HB7ZQ/9sOWghBBfLVJ/0A7Uinx9yU3H4kYuHvNb6dP6Cr/5nugJhOi/tk9LZrnNfj3tRLAlmpItd/iPD6vg9NpiJoNbMfIEbzEG7ihUhWOUhZyyaYnAwvgocl2WUJm5+Ok/9rQytO75SPc0vAdTgLWZBUE7VhPQ5KoawT74ym2RPm6IarXUXDKRdZRH/1vyw+9SMf8OupZQj9q+LN2ipRILDRCM/TFGPeZ89aoFjOy3VlFBqW3cd6/gxT22lvUs0RTBsdco5QK/ISION76IJ f/8TmO71 TT+UxnSUYBI8LnVsyvHzIG0yC2sfOKefdKBQp/CAOKD6ClWObeO6Oimat3nXKptouRwB5lbXOWDz5VRJ6qvRC6M1jSvmNO0ZsvX1U4uVVbKgJpiKY/SDx8w7dC3oUgultyBgkQFX23Q6NduyP4E1ZtVo5135J1FJKZr7IeWzxXb/p1Saaf7pRsl46jPPQcnGMkmpTKh9Glvg4QZIbsFK+tM2ZVISwAAJBlhTEuNgOc8Za765WsfpeZElXtS7uZLRalaBt9mgm3qL9xiAD3Nv+pDuGLCFKmXylEwQTwwM1Y2dkMBJ9aYY3TmU6b8mQ1htGgzemYauTaXzrA6DgAquFKaenhOLHIaxPNvoTql9A+r8+nIGHBM2cFi1QZBJc9sK13NVaNOJbu3wt2ePr84UV8nRPVkpO5GWy29wZmaTJU4TWa4RwU7blgnudOXWWCgArfhFN6tyWqOzLWIZ4HxetVmEEft92RXpGQpJHkcL1jaOjTdakRuR628/zPxhUy0kHMNE/LvQawMAUpHNiu+ZPpNUfNnqORqNyJWIk4yTJgUCd/jSQ4Kj/sNtr/acpfzUzEvr7 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: List-Subscribe: List-Unsubscribe: On Sat, Aug 17, 2024 at 01:18:32AM GMT, Pedro Falcato wrote: > Replace can_modify_mm_madv() with a single vma variant, and associated > checks in madvise. > > While we're at it, also invert the order of checks in: > if (unlikely(is_ro_anon(vma) && !can_modify_vma(vma)) > > Checking if we can modify the vma itself (through vm_flags) is > certainly cheaper than is_ro_anon() due to arch_vma_access_permitted() > looking at e.g pkeys registers (with extra branches) in some > architectures. > > This patch allows for partial madvise success when finding a sealed VMA, > which historically has been allowed in Linux. > > Signed-off-by: Pedro Falcato > --- > mm/internal.h | 2 -- > mm/madvise.c | 13 +++---------- > mm/mseal.c | 17 ++++------------- > mm/vma.h | 7 +++++++ > 4 files changed, 14 insertions(+), 25 deletions(-) > > diff --git a/mm/internal.h b/mm/internal.h > index ca422aede342..1db320650539 100644 > --- a/mm/internal.h > +++ b/mm/internal.h > @@ -1363,8 +1363,6 @@ static inline int can_do_mseal(unsigned long flags) > > bool can_modify_mm(struct mm_struct *mm, unsigned long start, > unsigned long end); > -bool can_modify_mm_madv(struct mm_struct *mm, unsigned long start, > - unsigned long end, int behavior); > #else > static inline int can_do_mseal(unsigned long flags) > { > diff --git a/mm/madvise.c b/mm/madvise.c > index 89089d84f8df..4e64770be16c 100644 > --- a/mm/madvise.c > +++ b/mm/madvise.c > @@ -1031,6 +1031,9 @@ static int madvise_vma_behavior(struct vm_area_struct *vma, > struct anon_vma_name *anon_name; > unsigned long new_flags = vma->vm_flags; > > + if (unlikely(!can_modify_vma_madv(vma, behavior))) > + return -EPERM; > + > switch (behavior) { > case MADV_REMOVE: > return madvise_remove(vma, prev, start, end); > @@ -1448,15 +1451,6 @@ int do_madvise(struct mm_struct *mm, unsigned long start, size_t len_in, int beh > start = untagged_addr_remote(mm, start); > end = start + len; > > - /* > - * Check if the address range is sealed for do_madvise(). > - * can_modify_mm_madv assumes we have acquired the lock on MM. > - */ > - if (unlikely(!can_modify_mm_madv(mm, start, end, behavior))) { > - error = -EPERM; > - goto out; > - } > - > blk_start_plug(&plug); > switch (behavior) { > case MADV_POPULATE_READ: > @@ -1470,7 +1464,6 @@ int do_madvise(struct mm_struct *mm, unsigned long start, size_t len_in, int beh > } > blk_finish_plug(&plug); > > -out: > if (write) > mmap_write_unlock(mm); > else > diff --git a/mm/mseal.c b/mm/mseal.c > index 2170e2139ca0..fdd1666344fa 100644 > --- a/mm/mseal.c > +++ b/mm/mseal.c > @@ -75,24 +75,15 @@ bool can_modify_mm(struct mm_struct *mm, unsigned long start, unsigned long end) > } > > /* > - * Check if the vmas of a memory range are allowed to be modified by madvise. > - * the memory ranger can have a gap (unallocated memory). > - * return true, if it is allowed. > + * Check if a vma is allowed to be modified by madvise. > */ > -bool can_modify_mm_madv(struct mm_struct *mm, unsigned long start, unsigned long end, > - int behavior) > +bool can_modify_vma_madv(struct vm_area_struct *vma, int behavior) > { > - struct vm_area_struct *vma; > - > - VMA_ITERATOR(vmi, mm, start); > - > if (!is_madv_discard(behavior)) > return true; > > - /* going through each vma to check. */ > - for_each_vma_range(vmi, vma, end) > - if (unlikely(is_ro_anon(vma) && !can_modify_vma(vma))) > - return false; > + if (unlikely(!can_modify_vma(vma) && is_ro_anon(vma))) > + return false; Not your fault, but I find it extremely irritating that something this subtle has literally zero comments. mseal()'d + user does not have permission to modify pages = potentially discards, as per the original message: 6> Some destructive madvice() behaviors (e.g. MADV_DONTNEED) for anonymous memory, when users don't have write permission to the memory. Those behaviors can alter region contents by discarding pages, effectively a memset(0) for anonymous memory. For something so invasive to just leave this as implied + needing to look up the commit message to understand is just... yeah. But again, not your fault... > > /* Allow by default. */ > return true; > diff --git a/mm/vma.h b/mm/vma.h > index e979015cc7fc..da31d0f62157 100644 > --- a/mm/vma.h > +++ b/mm/vma.h > @@ -380,6 +380,8 @@ static inline bool can_modify_vma(struct vm_area_struct *vma) > return true; > } > > +bool can_modify_vma_madv(struct vm_area_struct *vma, int behavior); > + > #else > > static inline bool can_modify_vma(struct vm_area_struct *vma) > @@ -387,6 +389,11 @@ static inline bool can_modify_vma(struct vm_area_struct *vma) > return true; > } > > +static inline bool can_modify_vma_madv(struct vm_area_struct *vma, int behavior) > +{ > + return true; > +} > + > #endif > > #endif /* __MM_VMA_H */ > > -- > 2.46.0 > I remain baffled that the original implementation tried to do these things at an mm- granularity. Reviewed-by: Lorenzo Stoakes