From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from SJ2PR03CU001.outbound.protection.outlook.com (mail-westusazon11012065.outbound.protection.outlook.com [52.101.43.65]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 02FBC3BF676 for ; Thu, 26 Mar 2026 17:29:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.43.65 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774546165; cv=fail; b=a7Pxh9nRWfKSOrdNKiP3puFJUSD6EdaraadVJoBdJKtkOEr1n/gtWeIaluJwZ7//XYrQNu+40lX/ZnUmUV0Iwh3XDzQmY2F5oiLp/khGRLSN+KLeEOj955SxRhoNZrufyttyyqCRBfsspQzns5FXqdsS1RxixRvDPzkOSVOVsQY= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774546165; c=relaxed/simple; bh=x1j89lgEKyBwjuH/UMtKJKKZsOJUbOM4FfCOcIgSvUY=; h=Date:From:To:Cc:Subject:Message-ID:References:Content-Type: Content-Disposition:In-Reply-To:MIME-Version; b=tfozEqZ1sNn7u1ar6S5q3uYiYjGeGMU/5gkgctpUVKfcrHvKURCo8Zxw1J9cukIMrJZYey1phGRPnquAHVAz7GJfkoVpoKh/IVQKNjQpT7mm0/Yb4pC9yCj7xqcp11lVNIHD5TSE9U2FS050EWhNZH/LjMOLa4+1/lsu3OIHYGs= ARC-Authentication-Results:i=2; smtp.subspace.kernel.org; dmarc=fail (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=fail (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=EbApYqNy reason="signature verification failed"; arc=fail smtp.client-ip=52.101.43.65 Authentication-Results: smtp.subspace.kernel.org; dmarc=fail (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="EbApYqNy" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=q4AyrpEssyxlDviq8qHLZ9By2fMasw4+TTyXqC0x148Bm08ZiqEHWWB7K61WK0hxjkFmo4Yg78JYlqQorP8Den8Eirj73LG2svVnCJdgqux5WOYw7+YsO+sfACdepRv26WucXYRrxLtFwSkv1FxEfG7d+Wr6AnBnvgsz0g1giVYNUIssQgwsyP49A36k9RgcEOPIm8TF7fam0r/mt+6uLTPs29gljOxvgjnWjR/iV7sMl5vhI611Boz6v6Dq2q+O0u5SD8FP7M2Cc9djxTEw6V4hH461JGR2b7ItkxOrEfrWAlW3hSmYNvZo9cKMJFOFbszC7Cb103Gf4bA7PVH5Ew== 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=sDG0wLSaoTWqeCLtY71zAHTfKMOzIeCdclwEo1wkN9g=; b=JFiJOzsOenEy/fMYh1WvxYt/xT69KIwaYBV/biGNnv9S+M6WskqphOIhEOCFKNVxGlt5J7A+e0afC+YDHnozgrcZM0/r2D4xI5cBZ3wUowDN0oB8PkWx885flvZRa0nAlDAc4QyoGmWv5loowtmgC0TFn9pkIqB5c5fDuNdBEqHcyDlfzfm4/SSo0UpdMZQcy/XP5C2pZ5AAA5IbYxc4p64caY+6EH3pBNmG9f1F+yl6TpfjLo/nZJ0VHJg0npC86cYjk0JU6LAbjugiQXzEDLmjC8XCIMGhC6jP4Ph+wFnAJWNTAufccqTAyiiCcG9BLVp/tjQJ+7/M1nxWHwSu5g== 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=sDG0wLSaoTWqeCLtY71zAHTfKMOzIeCdclwEo1wkN9g=; b=EbApYqNyWTy5ZUlKSrpd6f/SJ76+A0+Yk5BAKwqiIgb/GZE5hrEou7HJVET9Txv5xQfTCrq0nWERPpY43yBtzkRIykpi+0Z29JZ70u/pMWDwON/VvLloehLjyTiL2tUBQnwxCES5z6OCrP3rHw7BWoyPWnEBFpPovoautiOvJ6scHULCSiRtBpsjo0bnXUswlVXkfkmRYcgdABpipQdKu36N6/jLTHdoRob/6/CVobFuOF9MCgR6nHcelqwsPovSwfKH1FCpJz6jpe5FOsSrjGdr3cdkq+6E4zJqw2N0edf0sMWv287O5TSS/3nne9UjPpuiIsAG9T9fgFW/a4eQKA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from PH0PR12MB8800.namprd12.prod.outlook.com (2603:10b6:510:26f::12) by CH3PR12MB8233.namprd12.prod.outlook.com (2603:10b6:610:129::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.8; Thu, 26 Mar 2026 17:29:12 +0000 Received: from PH0PR12MB8800.namprd12.prod.outlook.com ([fe80::f79d:ddc5:2ad7:762d]) by PH0PR12MB8800.namprd12.prod.outlook.com ([fe80::f79d:ddc5:2ad7:762d%4]) with mapi id 15.20.9769.006; Thu, 26 Mar 2026 17:29:11 +0000 Date: Thu, 26 Mar 2026 13:29:09 -0400 From: Yury Norov To: "Christophe Leroy (CS GROUP)" Cc: Andrew Morton , Thomas Gleixner , "Peter Zijlstra (Intel)" , Mathieu Desnoyers , Alice Ryhl , Viktor Malik , Randy Dunlap , David Laight , linux-kernel@vger.kernel.org, Yury Norov Subject: Re: [PATCH 1/2] uaccess: unify inline vs outline copy_{from,to}_user() selection Message-ID: References: <20260325163313.749336-1-ynorov@nvidia.com> <20260325163313.749336-2-ynorov@nvidia.com> <6ce733b4-5fae-49ac-ab0e-9c87e620e830@kernel.org> Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <6ce733b4-5fae-49ac-ab0e-9c87e620e830@kernel.org> X-ClientProxiedBy: BN0PR04CA0180.namprd04.prod.outlook.com (2603:10b6:408:eb::35) To PH0PR12MB8800.namprd12.prod.outlook.com (2603:10b6:510:26f::12) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PH0PR12MB8800:EE_|CH3PR12MB8233:EE_ X-MS-Office365-Filtering-Correlation-Id: a1f1b0b6-2b46-4577-dc15-08de8b5d31b3 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|10070799003|1800799024|7416014|376014|22082099003|18002099003|56012099003; X-Microsoft-Antispam-Message-Info: dRyeRAmcfPYWVsFphL3yk5huM7vtFGhYB1MDi8jXnEhGm0Trq5CSLPe/ROZZP63k+BQ0WW/08r+kBn3G/WFNBBAS8pF8IC6VZMUX/JH+UHhXtd4s3hUS9oTYTJ486yzKlaqNDt0YqnkDBQcP11gsMvISM4x/ksfd/esovF0M+iXKP9rd1hYqxJd1DvPneQgEZY76zecdEx0fEm5Byv1GWlc3NSNroSth1IfXYNodSP4RKHPXdsHIE+LCL+uW2nzF1WSvJlcF+zYK57gzuqJOKRR9XNsF3MzZ9vfkXuJxMeadpkYoYKyOdFe1yaMjIQkNl86Hm+O0gU18KAUtiI8KMUJspTRboHTGC59M9soeR/VqKVXn1ZpBudzNnoO4URJtRPiz/oGW7YWqvBhHew/RlQnvYlJI2tssPs9N2RFQVLkPviahQjDs687poKnU+jo6bLnD5QiPkVjEsfBGtmJRMHLz+eb+llRgyvEBVpsXzI7Tw8Bn7qqyZHp5r27dF27zgjV6xV2UICxUy17pUXG3Gr1PzxpHQ2hJdJLOv1ibO/+yKAX+mu8HoB8MTtkx5WHzbnSY5rFz86J/Fgk5sq1dtCj6/mZODvgyb3KL8WEtxc05LpOpUp8/alFkKN+ao883Xdkbo2yGeP9LlagNhkEoGpOgxK9isT9HNk4ZlwfmMWwDoUNW6SqcYvyS5g4HquOVKeNn4LK+HBLk84ZR2fldKy/Jz+jiNRlG+qFi+5KFeYQ= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH0PR12MB8800.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(10070799003)(1800799024)(7416014)(376014)(22082099003)(18002099003)(56012099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?iso-8859-1?Q?otJ1Cma79CNSf1qBLLmjP+YRL1QENhYiLydH62x0an3IxiR5ejcFKrnUiQ?= =?iso-8859-1?Q?rWW362SVPtNphyZyUBvvlXsLp7OUqy1ScAJQXXZ7vm4n4flJ6f+a8ryj+D?= =?iso-8859-1?Q?eoNqm8nnc4ste2OlRSAqco60Dei+qWjrXYgHcC+di8BIk7R4gkyiI6bMM4?= =?iso-8859-1?Q?LT9Ez77hrFY/bhiq5pilp1rfkmum7hxLmFxC7DPOyNXBjR4elqvknkAqnQ?= =?iso-8859-1?Q?yV4Dvlfk+NUPC4iJPUSO9rJc467U5Q3MIk+uyhiBIoY7MpzQ4dcG9/tXOj?= =?iso-8859-1?Q?j+w8R4tYLydZSAXVRvv8pdZ1AbTvlSduWil7PFfCFxUVDZq36aaFipqEZn?= =?iso-8859-1?Q?jfj/SM9jjw2L9FI0fOknk9NOX7Zmh+OIzDcbXpVYRx1h3Axl2O1hb8iQlk?= =?iso-8859-1?Q?rmfdzVdE2scAm7nWzwY/bL523GFVkYfocJX4OU7OWayzfA5RAPoAaV9iWX?= =?iso-8859-1?Q?BMjEwZ84JMlSrCGVkroLFzkS51o0UAbv2x/di+pQQf714j3Zem5s5o2bw4?= =?iso-8859-1?Q?IeyUcA+/nROo0abdxGuW83lzmHPX++uXxeE+PHSZvZKSjt8IVYtYnW6USB?= =?iso-8859-1?Q?OC/ifQDHIXDXthA+xlYuy+60dmB16Wmg7Wgdv7XdZc8BvS7M0Rh9vGkNx8?= =?iso-8859-1?Q?auYal5Vm1YTer/L7uH9LuvVEYVXNpjqgrhZh2n1DBisfx7S8dgTVOlUo9N?= =?iso-8859-1?Q?4A6edLS8lgYv35DmfvTrKpXhFPK9Mkg81zj0CMJsn7j9d6OvNgu7uoj2dU?= =?iso-8859-1?Q?qMwsi6Uxb050fLUmWTnvgpWgcDqrMT7xf90rtZP4nlkSKJlJ2zxmXhylSn?= =?iso-8859-1?Q?SBuJOAT2OFW3mqtFdSG/8UNqrPF0SDgdzcg8pbeUixB4TawUdOMZigUVhh?= =?iso-8859-1?Q?Mp9yO3tiqU4Jx8S74j4YowbhbilasYcdWtR88n9hS0eUlApl8hdxrNor+S?= =?iso-8859-1?Q?mLWpD+ZmcdoE90iR8iKfKZ2W+ybC7O4cfGDJxxG+0rhCZUkyplT6cyTQlq?= =?iso-8859-1?Q?/eqdmoh6J9XPQ2/FBDu/hORy6V9nWQqhpdUX73HnNlw+2q8yW/64hx813f?= =?iso-8859-1?Q?P1vr02qsDYNaB9k/JtHykrnqseRPUq7XTaHCiviJQUuBEyb7nWySVFfBbR?= =?iso-8859-1?Q?bKsQSFsqsGYBu//WBUk4yvhDsxT1wxaWX7Vh2TCF1NbryHynieeRrDnlQD?= =?iso-8859-1?Q?SsysnkPVLEp5jn/L2MThS96uyEneob8BNjuPamgfr2ocysKomt/rfcDqG/?= =?iso-8859-1?Q?4d25B/MpKJI61592grsUHe1C81bxNa5Xx/J/ahzACwmTcUNFZWN+aj0c+s?= =?iso-8859-1?Q?RgbnjHboIx/q6WonCKvChoFAYI+IndgFjuuFSCYAaa/2hiVrUrDajGoB4O?= =?iso-8859-1?Q?sVHdLefIjc+mV6KMag3FxASPjbu7iwaviu7AW8mewJqkYSgFAyHh5io3aX?= =?iso-8859-1?Q?6WQmhNsx9g3W/JZg3Cq0eOKSmBkC7l87WUw6T2GSwB5dGnaU7KZGPKNUUE?= =?iso-8859-1?Q?lfYSVyi42s78pdK3cvXeciDEdapXiPExr7rNk1+t2AwgEtKS040z3A1MaK?= =?iso-8859-1?Q?jAoiMEaupdN0weGGtPFwvdYm+s35j0Z4c3ZUb4nCxdat9HVAQikLqtVUeB?= =?iso-8859-1?Q?EidlrVsnrrdplijlGPs+aXWqJYMF/7L7ZRcCzjRIHIEaUU1nyCKz1tGDgd?= =?iso-8859-1?Q?p2H2dnP8VF90nto6Noz0bzMJsHCB18MZvmp0hsvzJX4W0vHPVH4k5Ylamu?= =?iso-8859-1?Q?j2HQNPC+dSM3NNXZKxychUen7YYMqAJeot0/gjPJspV6nUavGTHqEBJ1GU?= =?iso-8859-1?Q?Sbt6n/lKzSbldIigmc5cShwoxr3RmWEZOmSdwqpoteHYTzubRbQU?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: a1f1b0b6-2b46-4577-dc15-08de8b5d31b3 X-MS-Exchange-CrossTenant-AuthSource: PH0PR12MB8800.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Mar 2026 17:29:11.7191 (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: HMyDpEjsMkfmwqZNgfRvCfRN8U4adBnA0vc7MdEPG+uJDy/12nALms8GS5eSNl85cru95OKGhw56VsTuQTt9xA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB8233 On Thu, Mar 26, 2026 at 02:44:40PM +0100, Christophe Leroy (CS GROUP) wrote: > > > Le 25/03/2026 à 17:33, Yury Norov a écrit : > > The kernel allows arches to select between inline and outline > > implementations of the copy_{from,to}_user() by defining individual > > INLINE_COPY_FROM_USER and INLINE_COPY_TO_USER, correspondingly. > > However, all arches enable or disable them always together. > > > > Without the real use-case for one helper being inlined while the other > > outlined, having independent controls is excessive and error prone. > > > > Switch the codebase to the single unified INLINE_COPY_USER control. > > Could we use a (non user selectable) Kconfig item instead, e.g. > CONFIG_ARCH_WANT_OUTLINE_USER_COPY ? This sounds interesting. I need to wrap it around my head for a while. Right now, I believe, the best solution is to isolate this setting from the sources as much as we can, and your suggestion looks like a step forward. Overall, I'm puzzled why some arches enable this while the others don't. The next question is why copy_{from,to}_user is so special. If this function benefits from being inlined for that particular arch or compiler, which functions would also benefit and why? Reasoning logically, if this WANT_INLINE thing makes sense, it would make much more sense if we create a machinery for something like: unsigned long __arch_inline copy_to_user(); > Also, looks like only powerpc doesn't select INLINE_COPY. Would it be > cleaner to change the logic to a flag for OUTLINE_COPY ? How that? x86_64 outlines it. Check it yourself: @@ -206,7 +206,9 @@ _inline_copy_to_user(void __user *to, const void *from, unsigned long n) #ifdef INLINE_COPY_USER # define _copy_to_user _inline_copy_to_user # define _copy_from_user _inline_copy_from_user +#error INLINE_COPY_USER #else +#error OUTLINE_COPY_USER extern __must_check unsigned long _copy_from_user(void *, const void __user *, unsigned long); If it was really a single arch, it would be worth to discuss what for do we need this customization at all.