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 63FC5C4332F for ; Fri, 10 Nov 2023 14:53:17 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 87B3A28001A; Fri, 10 Nov 2023 09:53:16 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 82BD9280009; Fri, 10 Nov 2023 09:53:16 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 6A4F628001A; Fri, 10 Nov 2023 09:53:16 -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 570FB280009 for ; Fri, 10 Nov 2023 09:53:16 -0500 (EST) Received: from smtpin20.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 27A30A0EB5 for ; Fri, 10 Nov 2023 14:53:16 +0000 (UTC) X-FDA: 81442337592.20.7984105 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (mail-co1nam11on2056.outbound.protection.outlook.com [40.107.220.56]) by imf22.hostedemail.com (Postfix) with ESMTP id 390D2C0015 for ; Fri, 10 Nov 2023 14:53:11 +0000 (UTC) Authentication-Results: imf22.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b=n0+JCyig; dmarc=pass (policy=reject) header.from=nvidia.com; spf=pass (imf22.hostedemail.com: domain of jgg@nvidia.com designates 40.107.220.56 as permitted sender) smtp.mailfrom=jgg@nvidia.com; arc=pass ("microsoft.com:s=arcselector9901:i=1") ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1699627992; 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=BtuvZ2D/8A5qwv2eUVcT5+fgAS7Ld3CNevaBxR2DouI=; b=6Lr9dDF7unsr2o+2RPxUbO4pydFg/+ayWSEfsJgtgRSX69aTHrTd35Wk0bsJOmaIROsmBo ySl+RNOC+qqm86F3ZCox/qpxrW+hNuPX+29U2W51br4tQDudBuDeDYM0TE8FXtdw7TLvSh AKINwt9YTmMZJxJ/aj9YHPQAuWp4cl4= ARC-Authentication-Results: i=2; imf22.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b=n0+JCyig; dmarc=pass (policy=reject) header.from=nvidia.com; spf=pass (imf22.hostedemail.com: domain of jgg@nvidia.com designates 40.107.220.56 as permitted sender) smtp.mailfrom=jgg@nvidia.com; arc=pass ("microsoft.com:s=arcselector9901:i=1") ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1699627992; a=rsa-sha256; cv=pass; b=2wo4gYpk/CR/kThokayds7wI8NSlEFsdIQS5M+9c1GqunDAm1TANjaWheUwZWYQ36o5nXY QeNLdH+/tI8ejhYMZ1F0FPMDQC/Wr7POifFknXY00YNqx6ZSSj6Lp6NxBWAboILlXdPJYh bb+jpJNfUXMLhRiNaN26wR1iqZByz/k= ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=mrVMLsf6nzBzdiKOHjoseNZd4SwgbZU94Lu6bsXXX6JinSMiYt0W9whbdpBdFRggaWPESA0eDROiam+3eWkMvbdYXO6epKV10JH1uw3h+SdnuyphwaCNzFHfJI/SO+T5Jc+MvM/uMosMqsysdteudbC3fu9vgy2j2VBm/FzluGses+b6dhaaFeMcbT3hTDH/2ylHpQnt/CC/TjO1hU5y1b5Yr1+04CxPmu4eIUkk73T8UwhGRtfMBAYMqVWOkFmg0W+pew2AxQy8ivmj9BjInT8RI5mIWV9FfVQgmtr4KYGdEP7vNE7xgI1T1n1GTHZRfk0bVxEA16ypkqcdBG1D9Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=BtuvZ2D/8A5qwv2eUVcT5+fgAS7Ld3CNevaBxR2DouI=; b=j2GH/VcAXf7ZDNqgNpTiQbZ9NUgMjVFP4YZzdoAkfn+hpZy/ukHaYb0ud/R27227rQfgJVHzyXX/wQv+svglK7Y3rrRMRmkyJIJ6FI5Hx86iqvg9U4OlItfZIJViz1YdvLkrQZ4jJUPyVFr1YhmMqvX9SY6gPlHUNOg3WBer4Fv8s9SPuVaDS0PzgGAdOvKRUTF4D0xG9vIdV9ybj6uWqwZVav9dsALgHNQa5W3Y2S/QWPn6u2FrgA2+zmX8dk0buGd0TrAEV8V/D+/d2gjQye7E3limvvLtzkaMTrA+QT3aIAzFUUa8IEk1xLzdEEfCf9UvZt2uij1fJJr0o41ksg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=BtuvZ2D/8A5qwv2eUVcT5+fgAS7Ld3CNevaBxR2DouI=; b=n0+JCyigceJctBJ2KoAblzehVOEWPm4w5rO2eLab7jOFwL/PiyxU+q+sPzfXesMvE0DGJoZrH4i/h3z2bWrjxzfWHa6FzGKyK444FuGaJBckFcWXnJW51z4VjAwWQXTPBzEXwws2dpMxn6x++2yBADVvolZYIXOIptV1OYFxLXSNYhFiEbh2v1FMmGisUpoLCpsp90iYKmrCP+GEieLhHmme6zA2712aJstVLlHGPS58kArIWbD4KNYSSAF541cjDcF5ZYOWbDuEIYXSGrnaghpiX/+cVcanHkfS2HjzfynqA5NeTk5Aj+M+SVAKbHPk0jtwhDn/Vwd6oxHESal88A== Received: from LV2PR12MB5869.namprd12.prod.outlook.com (2603:10b6:408:176::16) by DM6PR12MB4419.namprd12.prod.outlook.com (2603:10b6:5:2aa::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6977.19; Fri, 10 Nov 2023 14:53:07 +0000 Received: from LV2PR12MB5869.namprd12.prod.outlook.com ([fe80::60d4:c1e3:e1aa:8f93]) by LV2PR12MB5869.namprd12.prod.outlook.com ([fe80::60d4:c1e3:e1aa:8f93%4]) with mapi id 15.20.6977.018; Fri, 10 Nov 2023 14:53:07 +0000 Date: Fri, 10 Nov 2023 10:53:06 -0400 From: Jason Gunthorpe To: "Aneesh Kumar K.V" Cc: Catalin Marinas , David Hildenbrand , akpm@linux-foundation.org, Christophe Leroy , linux-mm@kvack.org, linuxppc-dev@lists.ozlabs.org Subject: Re: get_user_pages() and EXEC_ONLY mapping. Message-ID: <20231110145306.GP4488@nvidia.com> References: <87bkc1oe8c.fsf@linux.ibm.com> Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <87bkc1oe8c.fsf@linux.ibm.com> X-ClientProxiedBy: SN6PR16CA0059.namprd16.prod.outlook.com (2603:10b6:805:ca::36) To LV2PR12MB5869.namprd12.prod.outlook.com (2603:10b6:408:176::16) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: LV2PR12MB5869:EE_|DM6PR12MB4419:EE_ X-MS-Office365-Filtering-Correlation-Id: ce7dbab3-05f6-4995-1dc5-08dbe1fcc01f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: xb2kt9SilzvsdQaITNEQOqrTvGjMeLGhojfv7Np+CQwwvOPEjZ3QoiKATUTf6xHYWEy5+bQ4jl8ywoi+eW1RN+wPzruN9k4tRQM2DLGoKkb5lN0Guoj9U1ufLVraOHyXkPppWeJj9XtjsYWwmhUtlfNxYegKv+nOPTSs7O61d056RSvNw+kUluTUPHOsRfM9KyjWzaRWMci0TwRVM3r2blZG5vxDv7P7zAMV6m9p1oJqrR6Cn9sWUZPeE5i1utXqnDJ/N6MrjgEYBFBtbV95gtG6fpz2u0g9xPjFXYYKZexlSIm9CXYaR44KiNGg38hCHAJecaaGIU+H6IS7NH0mxodh5DnMkBu2D3HO1chLSoXmgLkSCMcIguu9+CKuIB13TLA8W1gGF6CBlnGN+Ya1HsYS9Tsjep+YXbPjyGDiV+tlx4G4ixuc6SI3R0kXLmDce4sBNuzdXNKZy+qgGzl1gCJq4Klicizx3UfnVJA+eZ/4yc//KGFbJzula2I3UGAQLhioIr58Evt3CKQWUxMEcMbViYAUFWTnDAKosL3DZqH3l9v+5kcsayRXpMnsd1GL X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:LV2PR12MB5869.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(366004)(396003)(39860400002)(346002)(376002)(136003)(230922051799003)(451199024)(186009)(64100799003)(1800799009)(6486002)(5660300002)(478600001)(6506007)(8676002)(6916009)(41300700001)(86362001)(316002)(2906002)(66946007)(38100700002)(8936002)(54906003)(36756003)(66556008)(66476007)(33656002)(4326008)(2616005)(1076003)(26005)(83380400001)(6512007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?4BtQ3DRH92goPN9W+TQlHg+GWYgrBeeSNLp2xiskIr2J90uy3oA4J12rbQWp?= =?us-ascii?Q?YLpkZkDeENtWC+0il04ccQvLYXDH9Pj+6lDYbrEWKAluO8NIirCBsOlfQb7R?= =?us-ascii?Q?/gyT/C3c1Kt683igEgxBo3GrR8kkk+TenBf8HXG7dVoLmM2DYtEEDuJ7nuO5?= =?us-ascii?Q?bMhF9v5DaWLeJNaKu2DjdRHJW5C1F8mL9K0niVSJ4LcyJOp0Xg9PEVSlr3cx?= =?us-ascii?Q?45tSqZfG0A+Rw7LHNG5xzL/jDYrZ5FxRCUolrylPiuAn21iDLbvSqQNYXqTk?= =?us-ascii?Q?T7g9gy74KIQIaEn3nx4yNJp+sFppo1ujO4qjGUfH+3ImqC4mXgWJmzyZDL/E?= =?us-ascii?Q?EVL8gwHTG4hlCNliyFGj7mKjRklGWL//knX6PNQZj84kOL2ZbVTVCKGYbU0O?= =?us-ascii?Q?hcm3bhNKVkUHrwdz8CP1ZKkyb7t0vSEgDhdOn/fvZTTTdK+LhzysVPydKqLJ?= =?us-ascii?Q?NvwRlz+23OHVSZVCv8xbUUuDeWxHKFzcP0K+DM8NjEi5EZT4U5hCqdvlz+Ce?= =?us-ascii?Q?FN+ToLBNL1hmfeWGWesNvjFeWEsCLX9qM6Ah8x63i9cawMqVavq5u7PrUkDd?= =?us-ascii?Q?xKGQmrkNwm0dRohZapETsE2Fb5JHEpYBLlb/Ib4Y9I+1sDwaF+QXYmbrMnWc?= =?us-ascii?Q?eGD2EKRg4mWWWBHxnmzQiI7qCG0Kl/JUeC8pAtsrPbIoJdT0esQDNYputdPx?= =?us-ascii?Q?q3nQzPN79vxu0k89720Ij3HqQZC9v/Nf6gLuoONjjJNJQ5s3Qnj5CGRMOTmQ?= =?us-ascii?Q?4eaDeIOM4cHyDw5S2H63HVBOWxBkP9M8Zp3FEkzmenyyTrVGJJII6QHsg7g+?= =?us-ascii?Q?bHhhkcsV+NPa6A5SjKvTq4o20z0x7OdZWQs/TAPAdejn5XT75ADUxfeNeWNU?= =?us-ascii?Q?14Fbfy3O5k1gc0PfSCbuFT7a0sobh102W0KBiSKK24/jik2tDz70EGW21y8o?= =?us-ascii?Q?3YjgsH+ZqKwyIdMyPlj3EVmNMZiQTAzqL81CQOwEhs9QrnkjdzMJzR34SaXy?= =?us-ascii?Q?02GSZ2EThr3AVJRhwKVEDRvd0w1S5LNI2AnRPIwdAV72RQPW5fruqo5zuNiX?= =?us-ascii?Q?+O2R2zl7aNsTl3Aq2psirD/rm0LECxZZBKkdSDTUK1x1p+og//6ZRQizV3mX?= =?us-ascii?Q?NnVsSEOlyvviMRwdVesEEYuzDRpyGSfqeyzNUr9SZ58vYujFKHclPSQ6zRpA?= =?us-ascii?Q?3GTo0a9SROkM9YYr1WQaIQ05NWgv6FOAOgZ/Kgl7aFTXo73LoQSw4ezlgp8C?= =?us-ascii?Q?4vpFlfSax4aV6ai5rwxQCDQixzWrrQCvG/DR0WGc9asZ/YnJbOC2LY9dXo4K?= =?us-ascii?Q?nkIHaAtO8MZOtOzvrYeF3YHdlNcXevQJpPRw+R7Hjgqqp95/7KYVQi26lrxL?= =?us-ascii?Q?o8Vbg8qVZRPeRHShG7yN7zu5BBEdgQl5MxXB8pyBlHHpbDxoqD3uchgEwkYB?= =?us-ascii?Q?KS3ikeyaxmpR24THL0CXewb+GNQusNAjRG8xMMEbvWZvzVOs8iBGPtlvegrg?= =?us-ascii?Q?nApK73gaxLdf/XO7zySdufMR5KO7DQJVPJ8wL0x5O5HXcoXHSSg6wu60Uw9u?= =?us-ascii?Q?veBzyOgyIB2ElA4U5S5al1L1pr0w8GGIrUenyteT?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: ce7dbab3-05f6-4995-1dc5-08dbe1fcc01f X-MS-Exchange-CrossTenant-AuthSource: LV2PR12MB5869.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Nov 2023 14:53:07.5566 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: GJ649ucN6Pv2j1i07uTDm0n4ONyFFNwkP9+Ri84ixWjZFs2Xk6HJ2CMxVrSMSjlK X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4419 X-Rspamd-Queue-Id: 390D2C0015 X-Rspam-User: X-Rspamd-Server: rspam04 X-Stat-Signature: 4dnqghyczokoohdqfgdh1xoqh965b44y X-HE-Tag: 1699627991-388804 X-HE-Meta: U2FsdGVkX19ZomBpByzUHemhmrvlrB05jtkyuVOfWLiOf6Z3t8HiVwtAcM/FQo7/lSgZOLoMnQJUIfbuPhR78ZbEG9YhfT5Xplzo3a8snjKhqatu5FlzZ3k/4o+PStMeSY1cR5RZdxEd42pRWsqsIhEetIPRSvsXw26RrZX6/ZiF/aDJg/VLXK49FyrMpCyL6erOgaOdR4Iy/KCOUqiKkBIF3OyNn5zxM0BT+XKh7m0ucs1aODrIYjbar3PtJ4b+w1zO+SkLbogzSMRRq+o7xmHvQM4OIqJclGMXNft90Ztqsmcl3YpIplIm4IPv9ar7hu1WQIVPitUp2TVXby5+bMjG86hXni+TOAVx1PbO/DAEM/NWfa4qubRx4gTFSvNUwG0szWw9v3uhvBhtaHAs2jUByaKeM0p2yujBxUTVvbgNX9NYVH07eN4xyBIP6tQz7+G0LYLbb5LVmmkcsF8VfMd0MbNm8MK54M1/gU2FrLesz75QmOrVk9tvieENcYgOt1kIMIzRTq39kX5LrlxbElhD3aVZtz039LpWGVWUcRc7VHo5HIwCQDNHMp9bnzQO8GxD+9jW966FDjGxlQkVRIsDJ4hQljpkJCW392pp3Lsi6uqB/WdTUmOp7lv+ZLSjnOMydkn52Rib3srUPibI4dBfPRXB5cyzi7TzM9JaH+YwsmAjxyYY0M1eg05tuJLyM3ZZBawNb5A8ZlbEJHdnd2Wdf8pl0fUj3+hiVpGjBCp4DU5CVPV3+sSQPcJ4i4VSCVBFULX9XehsdyVTDS7S5i6szXxBp3iEcaC9xW0eDfDXRgdn72R+qg7mi70bJ9wo9e5Q8Uiur8+Z6xEmMWSoGU2+grOPsGQvriAl5jP58paBbQ92/tcB6birxoqP+EV92KQ1EeTx0CW08GKZMZPh2bNReNmo3NaVR7M75XYnyqXM/bY6+IXln8QX7a4iQp2YdH0cP8eDhN3/DrEnInX ScEaJYsa dYVkL9Ivbi1Ub6L2iPYioh/inSyRFmafo4r9jAN77En5i7cDaj1DkkpoiHQ3rehSsxpu+twJPawKPTc1Oa3Jf8hk0vfBPD6JYpnmLf/AM6lLW7NtK79j1UWlxoBB9p7am40SzPToolrjc4EJQm6DDAepf7yHW9t7w7KwWhYdG2KWMjLdtPlnK8mkvk0SI3ppUcU8UWXKS/HvH5te01ktmCsgcze32ew6Brqd5KVIV7OdvvNfMLSnlLcS0Zu3DH9djXmgt 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 Fri, Nov 10, 2023 at 08:19:23PM +0530, Aneesh Kumar K.V wrote: > > Hello, > > Some architectures can now support EXEC_ONLY mappings and I am wondering > what get_user_pages() on those addresses should return. -EPERM > Earlier PROT_EXEC implied PROT_READ and pte_access_permitted() > returned true for that. But arm64 does have this explicit comment > that says > > /* > * p??_access_permitted() is true for valid user mappings (PTE_USER > * bit set, subject to the write permission check). For execute-only > * mappings, like PROT_EXEC with EPAN (both PTE_USER and PTE_UXN bits > * not set) must return false. PROT_NONE mappings do not have the > * PTE_VALID bit set. > */ > > Is that correct? We should be able to get struct page for PROT_EXEC > mappings? If the memory is unreadable then providing a back door through O_DIRECT and everthing else to read it sounds wrong to me. If there is some case where a get_user_pages caller is exec-only compatible then a new FOLL_EXEC flag to permit it would make sense. Jason