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 E984DC369DC for ; Tue, 29 Apr 2025 15:14:02 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id ACE996B0008; Tue, 29 Apr 2025 11:14:00 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id A55866B000A; Tue, 29 Apr 2025 11:14:00 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 859156B000C; Tue, 29 Apr 2025 11:14:00 -0400 (EDT) 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 5DBF56B0008 for ; Tue, 29 Apr 2025 11:14:00 -0400 (EDT) Received: from smtpin26.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id B25D2B8621 for ; Tue, 29 Apr 2025 15:14:01 +0000 (UTC) X-FDA: 83387426682.26.969B783 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (mail-dm6nam10on2042.outbound.protection.outlook.com [40.107.93.42]) by imf20.hostedemail.com (Postfix) with ESMTP id E50651C0002 for ; Tue, 29 Apr 2025 15:13:58 +0000 (UTC) Authentication-Results: imf20.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b=LZEXcxcJ; dmarc=pass (policy=reject) header.from=nvidia.com; arc=pass ("microsoft.com:s=arcselector10001:i=1"); spf=pass (imf20.hostedemail.com: domain of ziy@nvidia.com designates 40.107.93.42 as permitted sender) smtp.mailfrom=ziy@nvidia.com ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1745939639; a=rsa-sha256; cv=pass; b=iHZx5Vi+EefG8Lt/b1/123HKQWIXHiO7BQ7QD0zr4oKhQeR8LOUME4pXOEITuDSJVWmi2R 172mj3bsINLcCA0pZCngHbE6OeYK3oyGe/HFa2uoIb8E7YZJDgfZcpxb6rXaHE2S2r4YSy 3j5MVyqjJLP2e20NxDlTYKzN+XYqVSE= ARC-Authentication-Results: i=2; imf20.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b=LZEXcxcJ; dmarc=pass (policy=reject) header.from=nvidia.com; arc=pass ("microsoft.com:s=arcselector10001:i=1"); spf=pass (imf20.hostedemail.com: domain of ziy@nvidia.com designates 40.107.93.42 as permitted sender) smtp.mailfrom=ziy@nvidia.com ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1745939639; 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=ghXbuEZXmJMYMlXD8Yk77nlF/z5ntWPRWZaN0Y//WD0=; b=Lf/gnfeXWdrvmVP6xpkFv+j7AGDEPXZ5t9qOp6N/so9hHYw44lDhSdF1zIiE2pEv7uOIlL i9JD463ZOycPK5EBh9el3hI/k1r2ojlAr4STI5HqRje6mAqDOLrIuWhSVFMyyHeDH4PhdW AgBYabMG7NjfngG8lsWVi9+PKmUKFFo= ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=vqdhMSUFqZUCmoNbDiaTR+HaP1EXxZlkzloz8gUwYR/vTAWeNGnSEq5N+c9DI+N1lit7q3tlh095mJY7aO4RTSyoS9RKJhEp+DYUQAbgXsNy4WKCwoB7Q197OY4OqXrPKqGE+PZIwSEOUvrW62/8G+J4cv3XyrIlJN5bCstcNybFr4j9ZgLwGAslDYRFj+SHw1ECsa+8ou/AQJ2sIryh93tvjWr2Vb8t32f847K8R1CPat+hobUU8NfZJJBhnJv+kEiDYHXBaM6jcuCaFLxnBA+oFzl2u3SfAOrM5A5eljW02yFbj2N24UFrCcXBpyjTzNgnzjAqHDXcdW/1lBh8FA== 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=ghXbuEZXmJMYMlXD8Yk77nlF/z5ntWPRWZaN0Y//WD0=; b=wZw86LUgqsSucR+likzJ3Cxy/xMWfFL+UWObUXhQergNLWxqAHpRQJ1Xbq3TCnxeqlLqTUy4GeoC96VXoQsaCqBdntHNIJ5gArrbsJYajoBfNK5nbScB3DWHfq9ArA3VkCfAV3NvKs9mm8gm1mQAjZjH0D9M0HzOTW4mO3OEwMfXR8D1vECYd0yveLwUt0dLW31lnRINylSeDaBBNOFeu0bglSSFKckqs3LLpDIRyB6LqLHlDc9kTpf6EYWT12F/6Q/TPFFHgWBiea4C1Ph1+CPapCaXI1FsNtHsOvIdeNOK/K6E7avdUIcPiITEApi4RccnnIL85bluDGCBRicqTw== 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=ghXbuEZXmJMYMlXD8Yk77nlF/z5ntWPRWZaN0Y//WD0=; b=LZEXcxcJ3eYZrKgjJ/pdD7jNxmiGTOSnolo/KCbSAq2wo1zfDYJ4CTO1E63uBq0hwZNDHSLMkPlScW0OiiwPkDvh/7PCeQ5OX3mKIoburw16xwSIHIFazMS6W2jGHyzV/fa2KwpFL+nt6xVnWymxCgDBY+JF81iVZTRNxclT00GPL2gmixSZnfyYC0CqDOrEq8jF4g8irwDio41Z+gnCknUIO6hy64IIpqPXpY53m9sfxA4upQnQpGjH+zmoLn628ertvRXoc9Y8VMNszsoD8gRzNfMQxuv2NOgT3Al0twI8ycEfOZzNbrm2EvHgQ8aigxc0SYqKcXjAyuGUsUS0Ng== Received: from DS7PR12MB9473.namprd12.prod.outlook.com (2603:10b6:8:252::5) by MW6PR12MB8836.namprd12.prod.outlook.com (2603:10b6:303:241::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8678.33; Tue, 29 Apr 2025 15:13:56 +0000 Received: from DS7PR12MB9473.namprd12.prod.outlook.com ([fe80::5189:ecec:d84a:133a]) by DS7PR12MB9473.namprd12.prod.outlook.com ([fe80::5189:ecec:d84a:133a%5]) with mapi id 15.20.8678.028; Tue, 29 Apr 2025 15:13:55 +0000 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=UTF-8 Date: Tue, 29 Apr 2025 11:13:54 -0400 Message-Id: From: "Zi Yan" Subject: Re: [RFC PATCH 1/4] mm: move hugepage_global_{enabled,always}() to internal.h Cc: , To: "Yafang Shao" , , , , X-Mailer: aerc 0.20.1-60-g87a3b42daac6-dirty References: <20250429024139.34365-1-laoar.shao@gmail.com> <20250429024139.34365-2-laoar.shao@gmail.com> In-Reply-To: <20250429024139.34365-2-laoar.shao@gmail.com> X-ClientProxiedBy: BN9PR03CA0038.namprd03.prod.outlook.com (2603:10b6:408:fb::13) To DS7PR12MB9473.namprd12.prod.outlook.com (2603:10b6:8:252::5) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS7PR12MB9473:EE_|MW6PR12MB8836:EE_ X-MS-Office365-Filtering-Correlation-Id: 51035743-d331-4da8-c268-08dd873075a4 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|366016|7053199007; X-Microsoft-Antispam-Message-Info: =?utf-8?B?Q1MvM0FRalpYR0F0ZS80NDBqSWQ2WHBUQVRRd29aN3FCeFBvZFBtaDhmbmd0?= =?utf-8?B?aU5zOXF6SWlSQXZrMjJmOHN4YVgyS2U4MEJYUmJZRW41MFk5UXZzRHAvcFhi?= =?utf-8?B?cXhleWd3TFZCakxldlRqNGdTbi9LWG1lUldWS1hsL3kzRGlzTEdNUEI2dVhu?= =?utf-8?B?NWNRYTZaQ0F3Q0Rhd041cjJ6d05peXdqeWljUFpweTBTcDErVDBRTCt1c3Rk?= =?utf-8?B?WnhTOGpnQ3MweUJ4aWl4YUdKQkRaUCtOTkhGVUxBZVJWdjU5SXpNc0hWbng4?= =?utf-8?B?S050ampSbXpRTzJBR3lla2ZBSlVzTjRHSFZMZXpONTFxZ1lUdm93dElQK0I3?= =?utf-8?B?U0pmL21aSmdLU3Rvejg5MHVmMEREYW1EM3F1VWszQlFPUmUwWi9YMXJsZThn?= =?utf-8?B?eHVES0xONTZQSWNNU1R6eU0yNDhCdG5vRVJLbGs2emQzUENDdmsrNTZtdC9M?= =?utf-8?B?WHh0VVBVQngvSDUxNXJkM0pVYlBTSk4vR1N6RS8yc2VVS2VaRXF5UVN2TStt?= =?utf-8?B?M0ZpMUprUjRaOWtZeGppYnBCdm9LaHl6bHYrVy9OditSZ3V1dFM2TXJ1Z1NT?= =?utf-8?B?amdkdU4wbUpuQ0s1VFNlV1pqMTVvMEdxSUpTaG5KMDMxb0RvSjNjdlBqL3pq?= =?utf-8?B?NllwVGJYdXgvQkFyd1MrM2NlSkpTa3hORk9Bdjc0Ni84NzVLeXc1NUc5R2Fs?= =?utf-8?B?QzJLUDBPV01IY1dXUlhvNm1ST2w0M2F6Q2tINFMxZFJkeElGYkd3blJwd2ta?= =?utf-8?B?VDlMUm11REg0OHlzbkcyaFlqV0hna2JYL2ZyYk42c2t3ZDZpTGZXWXJGNHUv?= =?utf-8?B?WG9aQWFFSkloa2xZSVF3SjllY2ZQd284N2tyS2NkQ3RnY2JESWlvMnFMUG4x?= =?utf-8?B?QzRCUWVQVnBxSlE1WHEwdWh4YVBwb3VSMEhBUENFOVJMbHhYanprZEZEdnFt?= =?utf-8?B?OHBxMDBqNkVVUENyNjFEU2s1UldnNGkvRDlSYWVGSzgrQ2pXOGxSZmNrR3d6?= =?utf-8?B?RkRDbzljdDhvZFFoYS9RL2pHa3Yzb2hhVThQUVdoa3BwNmx6eXZsYWdGY1Rs?= =?utf-8?B?WXBFbHg2Zm5YY0ZqSWNYdndIdTZmbUJFVVE4Rm9nTnZuRVdkeGo0M1l6d29p?= =?utf-8?B?T3pOSy9EdWNZYmxPMXVxMHgzUkhHYlRUVjB2cWRHUllsbHRJT3NyeHZKdzFQ?= =?utf-8?B?dG1ZUlE2dmMvNy9ZdGxpUE5BOW1DRTRZMGlJT3BiSzJ6dnRCd3pYSk9rMDds?= =?utf-8?B?T01McUpKcGV6QXFMTDNNdEFsRVY4Q3dwRFBNZyt0ZnNIdFJBcEFIcXNuVjZo?= =?utf-8?B?MklKdVM2SVJkTVpjYWcwTnl6NjRUR0JsdGhlYnVxcVN6OTZLRmV3TGEvVXcz?= =?utf-8?B?L0kwVmEvVlBhT2Y2THFBVGpJMEdTQzc1aHM5enBTbUw2d09KcXNST2hZSDFK?= =?utf-8?B?c3Q0cFJodjRaVHNKbkQvR3BQenpUcFJYQitWM3Z1dmNURjNwcVRUbnU5cEN6?= =?utf-8?B?Mi9HYVdLRCtXbnBjOGVRajRnM0swOXRrNnE0ME5YMjJHNDI3di9hZVpTWHlx?= =?utf-8?B?SWljODJ5K2ZOcC9LV0RWay9DMHVFL01rQWV1YUNzNkt5endRVFBXZ3Job3pa?= =?utf-8?B?VHV5d1VzcHJML2ZIdkErcmhKVzRPZyszNXE5OU5keGVRcXRuQlIxb1ZMNUYv?= =?utf-8?B?SncxTlVrMElXZnBCNUxxeHlyMTl1bHIxak5nVTVSRFp6MGl3bzkwL21lUWxC?= =?utf-8?B?ZHIwNGpOL1BwMkZxMGhNdldiVDI4MW1aai9LNnJjLzQ0V3lQUDRNNS81L0Jv?= =?utf-8?B?T2hPOFJKL1dpREprYm1vTGNTYzExYjdRZVRZTFBzVGhaTXNURDZTMER0dndv?= =?utf-8?B?b1dDRGJOc2ZMaXFIRnNXeFppL21ESlZBNmhjNUlaN0dibTVUUzdPMGRWU251?= =?utf-8?Q?gCcE6+CfJjs=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR12MB9473.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(7053199007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?T0JiWXVvSDBvVmtkeGdjcmZBRGFWRFpFL2F0Yjk5emhpcUducUFwNlo2RVgr?= =?utf-8?B?RGRXM3IyZXNuRDFCSmdCYXBFb2lVZmxobzlqcnIxd3M2aFhBRUR6Q1BPVUFq?= =?utf-8?B?NUpyaXNOdHo4c2VmRXZKTlRtK3hNZXM3Kyt3dUdhOFM1ZVlCYVNJS0dYc3or?= =?utf-8?B?czNSK0pwV1VyeEluQVlFRU05YUU3Q2JOR0pnT2M0Nmw0YnVVem1wZ3BIOFRa?= =?utf-8?B?RjczOHJnelFKQXcxaG40UTVEMjZ3dFF3TEtZQ2l6YXpoVXMyb0hsWjJlOWhG?= =?utf-8?B?YndBb29JVktWYTYxRzQ3bkJOOVg2dU1MNElYRGZYanN4eWhvQ2JMWndhdjZD?= =?utf-8?B?RENaOU5Qem5WWXV0N09NRzRZeEEySXlRYXM2Q2dWWkI5TWZFb0E3VFBad3Uz?= =?utf-8?B?Y3ArK1NVZW9HUGNDSWRWYVNTT0N3RnNmdlRaOHNLN3VGRCsxdmNGbFArU0l3?= =?utf-8?B?ZkF6cmNQR0NNNG42NHBGVE5TTTdGOW13L2d2V3d6K213emQxUDltVkxIVUZQ?= =?utf-8?B?bWpDU0Jaa1BjaGh0V3lSSFkzaEttckZMRXlMYmxMR2FYM3ZYbENzcHY0YVlq?= =?utf-8?B?dWdFVldTRVBOb2h2RzA4TDRNa0RlcVRBMlY2NEpGVEJocWdZYit6dm1BbmhX?= =?utf-8?B?RUZFeHJXK3dXSExDWUxCQTFiTFFPZElJUStUWitzeUV4MnMrV1hIbFRiQWVE?= =?utf-8?B?a2RUa1FGaFN5aHhkZ3k1cHZaS0dDamNZTi9BcG81K00vZituWU5SZDNHL3ls?= =?utf-8?B?M1hpZjBNek1UeU9oL1VkNHhBa3VpdzAvQ2ZhSVJqZFFKK0tkSGdtYW91VE5n?= =?utf-8?B?V0s5ODlhVmlaYnhRemlUUWpCSWZiVkVUR0JqUnhvV3ZqMHJ1L2FoWkhrejAx?= =?utf-8?B?TTZTT2t2bkpsVFdhVDJpcW80T2p1NVVXZ1pmUVJGUitGckdvZkpicm1NYzZU?= =?utf-8?B?WHluN0pnVnJ5MXFmcjJxWUV1WUJPZzVwN0kxOVd1UHR4RDAxVmViYmZLSTI5?= =?utf-8?B?dlAzaTVOVGVPRlR5Z0h3YlVwRmJRNWRVb3g1UGtWMG9SZ2JENE5veXJsVHpv?= =?utf-8?B?RkU5OEc0ZERlSmZnRVoxVlRoNjh3SFh4ZllWR01pVVRxakVobjYzdjRpalRB?= =?utf-8?B?WG9tcER6K2kwVFRjaGFmZXFFTEYyK1dRRVJKQnhjWUpYMUZidE9UQUF2WE5p?= =?utf-8?B?TzFsWGI0ZWszYXpRT1dxUkxYZ3ZVMkFJcUE3TFY5cWdscjJxbFF3aU1GVXdW?= =?utf-8?B?ck50Ulp5YjVkeXdUVjR0eHJLNW13aTl6bTJGd29zVHZkYjNDUmFtOU5UMzR0?= =?utf-8?B?bEFlTVVvZ0VuUmxja0UvZDN3QzIxMndwanBQOE85bk9Zalpick9CWEJUN0pY?= =?utf-8?B?QXZqOHBLZllveFZ4RjlKNWJoMUV6dEU4M1NMNlR1K0RZdkJ4ZFBGTHB6MFpV?= =?utf-8?B?Mkh0UWI5eHVWTEE5YTFCY0VpVWx3SFk5QTJUbDdLMnFBM3RsKzRYb2E0MHIr?= =?utf-8?B?bFpPOVphNWpCVlJSa1JDazVCSjZqZHNpaU0xck1ETlp0U2tJZ1JDcWdPU3Fl?= =?utf-8?B?QXhsMC9pR1I3bUFZMHNUdkFhd0wwempqMkRGLzMwRDlrbFVmRC9jbzJZWDdp?= =?utf-8?B?a2IwSWlHMm5mcXBySnVLNmpWY25CSE9RbndTcHZWN1ZNTStGVGhLMlhrSW9P?= =?utf-8?B?RHBCcXBHcWVnT3JldjBRQm9TYlZYQ2NzRHJvVjV3U25zWGpUWTlZVmZ2bXlz?= =?utf-8?B?NmNJMUI5eEVDRU1ESmJEOVBIbUMrRE1Ucm9JVmo0akMrK1Z4VWNVT3AyUXBy?= =?utf-8?B?RXJHTjY1S3RRU2F0VCtpYWU4RnhEbWNXdjNTTk1VeW1hL0JjSG5RYno2Y2hS?= =?utf-8?B?SHBHWlVibHdpdDJtYnZOL1ZpS2M3UzBoQXp1blZTeHcvNkU0RFNSa05XaGMw?= =?utf-8?B?YUZIMEFwdzFrdHJwU0RvM1haZ3lPSjdBa0p3d1d6Rm95OWliTEtYOFllQklD?= =?utf-8?B?OGhZbWNHWDBJK0UyRzZES2drTDc3MWQxeEhQLy93SVFEd2RMZmF6TjNxY0w3?= =?utf-8?B?dHM5dkpwOFBRbUVOUmRyT29Cb0lwcDl5T2lVa3o2NEpYSldjVzdGS2tNTW5p?= =?utf-8?Q?3yewCmxx92HqZDUwOUAaDn6yu?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 51035743-d331-4da8-c268-08dd873075a4 X-MS-Exchange-CrossTenant-AuthSource: DS7PR12MB9473.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Apr 2025 15:13:55.9396 (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: o0fYANImuijs/qUDwicEB9jQ6SXCwKIJ8L+aAsmDJuOW1xjA52Mlxs2So2jm4ARk X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW6PR12MB8836 X-Rspamd-Server: rspam03 X-Rspamd-Queue-Id: E50651C0002 X-Stat-Signature: fu634trhifgcyzuojy5hx6kf4ddb5ecn X-Rspam-User: X-HE-Tag: 1745939638-773169 X-HE-Meta: U2FsdGVkX19FAue+t2/sNgM2pVMYTpHGDZmeSgleDYT5unWrTfEzpo4a6FDxnldhN/NdM6RZ8yfIBW8B+cUPUMFtYVoc1Jfiwh9U0C8Vf0++Gw2Ql7FuEjetTiXZ4paVYWahCtJtqa/BOpHBM1AFDtJuWTe673SmXSWC4YjfQ/8bLF5Ig/MC59joCUiReluEOkdjmA3i0GXv478eaCh+HMvwYlYw8eQvc2+wXQI58Q4SuXzFVuO4X23fPpXXVvRoE1U2OT3eMoApknxdC7WG+/BXJRT019IV9gGJ89+1cUwL+uw95VVhnjVC0C5HTaqnQQkoES0tk82ZKu7TznknkSEYj1reDfUGHcBMUt6OHrsMPA47SewQkfxZUeRujH/pZsFHk2rozoIStcFWJ0wMsIVTMBWNGLYJWIRZiRhCKBPY4aTDruCmoQ2H8xTbwI/Yn0hxUe+x/u2ZeXocScSZts9pOe34+Xk+UV6AmHwgcGpr1Vp5wXcngtW+mw0xLZhVc6fTqql4jHF7EeOI1pr6kzsMbI5Xtg4As8rrKIkEDNUYRMZKMdGlVI9NKT3g0cNmIZI2yQbSQ59pukfXdty30AM7ixFN1WrRbDCiM99gye5Xb9sXtXXTCgZZj8OEi1ytrAbasdJ9SlUuMeDjIZgr9SCntT81QEXXvoJZTzcMJoubvMezmKkg2D9adE4cR0SvsUlHQdqQb0OW/oYcKgW7EIPEA58Z3Rd9dhuw27km85H9YGC7w77sMcsJO+3iiXeq0exmNjkDOiKuIIhl4G1hMYHfueNM1zKROuxQ/Pl8YmKBUzDNcAHG2vnCPdmnoQyA60JmG+P0f6gJFyNCeLUNYfXAe18NMiJnY6pGE5kK4Ih7tHvE9rdyEcjYTFUDge0j/hxigpGxTXV+doI42f+fud72Zb2BvZ5mZF2EJzeuurLcjpwk1uLIHpWRHukTbEWyAMWkmTg+/yt7tVNGB4n AifEX1nU OBxydPuOdHa8jbmRX+g1DQYdSaXvTGJwoHRO4PvH9IKlJrZHM5ts2MjjzVSz7HeZ+AiY899c/NFgMBDPCt3Omw/puyYMnn4MY8iWMuvSQMyq1Um5+sn7DV8VVZ6kn75ZFpE74LtYbcf0QVYZijlswplLfni5mIuRY0AgWvZeptmv7IXhHva/IPe+IlV9U8k/FlVU4C4XiWN5xHDwisicI13Y2e5PsouuaYnNBiC8hlxnO/2MpL3sJfheFIOLc6P+xx8Hw7gVDhCO6AcUr7blJowi2dRK/owLCpvaECoFvptzsrWotcfMDEmnaF/SKYCl47nxH1HI6/haYJbu/9dBVBd2hNv0tqeJH5bkvAADbgYp33HdiEoVSy4YrNA2T4rXwMxUh2wVI0aiwEUDIZTlnbmxwWn21YcoYjciTLg3pS5DyKxT+iL0CGcbxEljIxx5Yy38stJo2ueX5MfOWrVNLe+aJajNOtIlJmes4j4TyOIQerAiQ9DrTlsJJAtZ3+wrBpm+K1bZMWwtG01U= 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 Mon Apr 28, 2025 at 10:41 PM EDT, Yafang Shao wrote: > The functions hugepage_global_{enabled,always}() are currently only used = in > mm/huge_memory.c, so we can move them to mm/internal.h. They will also be > exposed for BPF hooking in a future change. Why cannot BPF include huge_mm.h instead? > > Signed-off-by: Yafang Shao > --- > include/linux/huge_mm.h | 54 +---------------------------------------- > mm/huge_memory.c | 46 ++++++++++++++++++++++++++++++++--- > mm/internal.h | 14 +++++++++++ > 3 files changed, 57 insertions(+), 57 deletions(-) > > diff --git a/include/linux/huge_mm.h b/include/linux/huge_mm.h > index e893d546a49f..5e92db48fc99 100644 > --- a/include/linux/huge_mm.h > +++ b/include/linux/huge_mm.h > @@ -177,19 +177,6 @@ extern unsigned long huge_anon_orders_always; > extern unsigned long huge_anon_orders_madvise; > extern unsigned long huge_anon_orders_inherit; > =20 > -static inline bool hugepage_global_enabled(void) > -{ > - return transparent_hugepage_flags & > - ((1< - (1< -} > - > -static inline bool hugepage_global_always(void) > -{ > - return transparent_hugepage_flags & > - (1< -} > - > static inline int highest_order(unsigned long orders) > { > return fls_long(orders) - 1; > @@ -260,49 +247,10 @@ static inline unsigned long thp_vma_suitable_orders= (struct vm_area_struct *vma, > return orders; > } > =20 > -unsigned long __thp_vma_allowable_orders(struct vm_area_struct *vma, > - unsigned long vm_flags, > - unsigned long tva_flags, > - unsigned long orders); > - > -/** > - * thp_vma_allowable_orders - determine hugepage orders that are allowed= for vma > - * @vma: the vm area to check > - * @vm_flags: use these vm_flags instead of vma->vm_flags > - * @tva_flags: Which TVA flags to honour > - * @orders: bitfield of all orders to consider > - * > - * Calculates the intersection of the requested hugepage orders and the = allowed > - * hugepage orders for the provided vma. Permitted orders are encoded as= a set > - * bit at the corresponding bit position (bit-2 corresponds to order-2, = bit-3 > - * corresponds to order-3, etc). Order-0 is never considered a hugepage = order. > - * > - * Return: bitfield of orders allowed for hugepage in the vma. 0 if no h= ugepage > - * orders are allowed. > - */ > -static inline > unsigned long thp_vma_allowable_orders(struct vm_area_struct *vma, > unsigned long vm_flags, > unsigned long tva_flags, > - unsigned long orders) > -{ > - /* Optimization to check if required orders are enabled early. */ > - if ((tva_flags & TVA_ENFORCE_SYSFS) && vma_is_anonymous(vma)) { > - unsigned long mask =3D READ_ONCE(huge_anon_orders_always); > - > - if (vm_flags & VM_HUGEPAGE) > - mask |=3D READ_ONCE(huge_anon_orders_madvise); > - if (hugepage_global_always() || > - ((vm_flags & VM_HUGEPAGE) && hugepage_global_enabled())) > - mask |=3D READ_ONCE(huge_anon_orders_inherit); > - > - orders &=3D mask; > - if (!orders) > - return 0; > - } > - > - return __thp_vma_allowable_orders(vma, vm_flags, tva_flags, orders); > -} > + unsigned long orders); > =20 > struct thpsize { > struct kobject kobj; > diff --git a/mm/huge_memory.c b/mm/huge_memory.c > index 2a47682d1ab7..39afa14af2f2 100644 > --- a/mm/huge_memory.c > +++ b/mm/huge_memory.c > @@ -98,10 +98,10 @@ static inline bool file_thp_enabled(struct vm_area_st= ruct *vma) > return !inode_is_open_for_write(inode) && S_ISREG(inode->i_mode); > } > =20 > -unsigned long __thp_vma_allowable_orders(struct vm_area_struct *vma, > - unsigned long vm_flags, > - unsigned long tva_flags, > - unsigned long orders) > +static unsigned long __thp_vma_allowable_orders(struct vm_area_struct *v= ma, > + unsigned long vm_flags, > + unsigned long tva_flags, > + unsigned long orders) > { > bool smaps =3D tva_flags & TVA_SMAPS; > bool in_pf =3D tva_flags & TVA_IN_PF; > @@ -208,6 +208,44 @@ unsigned long __thp_vma_allowable_orders(struct vm_a= rea_struct *vma, > return orders; > } > =20 > +/** > + * thp_vma_allowable_orders - determine hugepage orders that are allowed= for vma > + * @vma: the vm area to check > + * @vm_flags: use these vm_flags instead of vma->vm_flags > + * @tva_flags: Which TVA flags to honour > + * @orders: bitfield of all orders to consider > + * > + * Calculates the intersection of the requested hugepage orders and the = allowed > + * hugepage orders for the provided vma. Permitted orders are encoded as= a set > + * bit at the corresponding bit position (bit-2 corresponds to order-2, = bit-3 > + * corresponds to order-3, etc). Order-0 is never considered a hugepage = order. > + * > + * Return: bitfield of orders allowed for hugepage in the vma. 0 if no h= ugepage > + * orders are allowed. > + */ > +unsigned long thp_vma_allowable_orders(struct vm_area_struct *vma, > + unsigned long vm_flags, > + unsigned long tva_flags, > + unsigned long orders) > +{ > + /* Optimization to check if required orders are enabled early. */ > + if ((tva_flags & TVA_ENFORCE_SYSFS) && vma_is_anonymous(vma)) { > + unsigned long mask =3D READ_ONCE(huge_anon_orders_always); > + > + if (vm_flags & VM_HUGEPAGE) > + mask |=3D READ_ONCE(huge_anon_orders_madvise); > + if (hugepage_global_always() || > + ((vm_flags & VM_HUGEPAGE) && hugepage_global_enabled())) > + mask |=3D READ_ONCE(huge_anon_orders_inherit); > + > + orders &=3D mask; > + if (!orders) > + return 0; > + } > + > + return __thp_vma_allowable_orders(vma, vm_flags, tva_flags, orders); > +} > + > static bool get_huge_zero_page(void) > { > struct folio *zero_folio; > diff --git a/mm/internal.h b/mm/internal.h > index e9695baa5922..462d85c2ba7b 100644 > --- a/mm/internal.h > +++ b/mm/internal.h > @@ -1625,5 +1625,19 @@ static inline bool reclaim_pt_is_enabled(unsigned = long start, unsigned long end, > } > #endif /* CONFIG_PT_RECLAIM */ > =20 > +#ifdef CONFIG_TRANSPARENT_HUGEPAGE > +static inline bool hugepage_global_enabled(void) > +{ > + return transparent_hugepage_flags & > + ((1< + (1< +} > + > +static inline bool hugepage_global_always(void) > +{ > + return transparent_hugepage_flags & > + (1< +} > +#endif /* CONFIG_TRANSPARENT_HUGEPAGE */ > =20 > #endif /* __MM_INTERNAL_H */ --=20 Best Regards, Yan, Zi