From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) (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 8FCCE305972 for ; Mon, 13 Oct 2025 11:05:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.165.32 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760353524; cv=fail; b=WoXVRugLoSO4dAQlnjNBajazMYo888AcVYRVtSQbWHkipdnvqtwqYdIGA5BHVrLVo7x6QsU1Y7kLE2cifqDUDwJ2Dmzdr+01RbzujYgutvwCMAvnaNyGcqBjMwJ1kSbhhtMMzXPPicWvkJGgselJ4xMqTur42svtZ9KDpgC79hw= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760353524; c=relaxed/simple; bh=NJbjZvCf+fh43ve9qOw5NHWEmhyUkL39jlHgJlu0WFo=; h=Date:From:To:Cc:Subject:Message-ID:References:Content-Type: Content-Disposition:In-Reply-To:MIME-Version; b=hlXaer63pqxfu7TgQzw2mghAc/1ihNM5OP1IkR2GvkhZoI/KbJRUkvuudgNdDg68f+NbOiwC9YYoVJjbFsgk6xkCoQZO7uveJi8FpcwQnsw6AAhrxn2MmM40ThO/MVmfo/WQdldvfTy+siOal6JyfRfY/K+OZCOHP/g86fvmayA= ARC-Authentication-Results:i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=q1Y+i67D; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=hfzCuu+l; arc=fail smtp.client-ip=205.220.165.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="q1Y+i67D"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="hfzCuu+l" Received: from pps.filterd (m0246627.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 59D7uKcr013075; Mon, 13 Oct 2025 11:04:59 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-type:date:from:in-reply-to:message-id:mime-version :references:subject:to; s=corp-2025-04-25; bh=/i8bGbwEKZW/mp5gMq sZlJEuERuJO71TRjnYcP7vz4g=; b=q1Y+i67DTBJ+SLI2rVGU0VUpj4p6Z68zVg +a6OWkrxi/JGQrqTd6kELDxG01Iik53AaOREDXF3teQ8VBobl4/Hqs8izGhe/l1o zipMWefbwL0cOJ8IG4zPS1GfBDbOWcPya/9gUH/LGkHaSElRSRD+yJmhnf2RpEZ0 /MUSO5blQNURAVEa1kWKsai7HeLYzmNZ6o0uoc/pxYFtKRhz4cw64mzEGGDsp9Ox 8oPZCs5SuK1exek3g81twVFIranKrClVFwnqQoGLxY+1NTa1AB7x51knw2WrZhXN 1hSSOf13dEfBdLQB+gzjZCErTQmiJbddUCLs/mjsgqIRvwKsrCag== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 49qdtyj2ew-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 13 Oct 2025 11:04:58 +0000 (GMT) Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 59DAiQ33037103; Mon, 13 Oct 2025 11:04:57 GMT Received: from ph0pr06cu001.outbound.protection.outlook.com (mail-westus3azon11011014.outbound.protection.outlook.com [40.107.208.14]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 49qdp7drgy-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 13 Oct 2025 11:04:57 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=YW9NT32hGNwaH5gUICF92qEeg0E99yYIMGf+guV6iUEVflZaCWQjJ87laTwWTVZUsc3Scgmn636Jz2OolywZVFJfZZkeSXcVDe0bZFAE7todTpZyZULCAgTSfzUIO/j8qF7vyJ4oNdo3MQ3oTU0E+PJiKdhOuaDLMAKNy5iukPBKfc6KH+uqg+PMSvxEmHujgIO3VcPNIC7ygdOpNRAhVO01WKkM9IORbzltzeMlH40Oe3XY13gyEG7LGm8A0DgO1MvH1g1+2wLltdK5meCRo2FGeFx+2CHpfjNjuEUe+GqGr8W0LvL2k5hQyI7iMiSU/enpAXJC9zAoe4RfsS6YZQ== 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=/i8bGbwEKZW/mp5gMqsZlJEuERuJO71TRjnYcP7vz4g=; b=PVWj1nIyUeLbv2Nj+LQHf/0+X8AzvDcXA5XlPJA1sZbzvWfP39kDWe9TXXcwfgPRJuMQfHENIn4GjPa7Wlk0X0uMA0/dzDRPOBw0qLYchM+paUUvCy0cxneVwaoLMqEuz2/KvZO3+c3AJRUTGrQa1+enUtw2TCmi69ZrFzvkO3bbjJJikG+2p4tP90HmPcZAjWST0nc8bcC9azP2Pf2Wxfet9qsnr7iazi6Z+XmxaayD/zRz3NqjfmLqahXk7kiublap7qTe/6W/F5bLxCBm6CFGq7cuGRBTvA0Yz1M8rQRKQ1h7/y0btC2LZGutrqcUkQFpe0N3reSM/KZI2Be/kw== 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=/i8bGbwEKZW/mp5gMqsZlJEuERuJO71TRjnYcP7vz4g=; b=hfzCuu+lCn5ZYGG5H0/GuvSDiC08+DK2T5Nh9eYek6vK0kPKOGeNgp4dDXCkv2NuufLwZL3RVMr11a+CVOOuGSwopLelqFHORi8aQ2N2OSEv9/qc9RoPIYLINVZqeolyftzgmndomf7dmiKbzLuvfOtKd+EyucIi5wsNSRb9IBc= Received: from DM4PR10MB8218.namprd10.prod.outlook.com (2603:10b6:8:1cc::16) by DS0PR10MB6725.namprd10.prod.outlook.com (2603:10b6:8:132::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9203.12; Mon, 13 Oct 2025 11:04:53 +0000 Received: from DM4PR10MB8218.namprd10.prod.outlook.com ([fe80::2650:55cf:2816:5f2]) by DM4PR10MB8218.namprd10.prod.outlook.com ([fe80::2650:55cf:2816:5f2%2]) with mapi id 15.20.9203.009; Mon, 13 Oct 2025 11:04:53 +0000 Date: Mon, 13 Oct 2025 12:04:51 +0100 From: Lorenzo Stoakes To: Ye Liu Cc: Andrew Morton , David Hildenbrand , Ye Liu , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: Re: [RFC RFC PATCH] mm: convert VM flags from macros to enum Message-ID: <809f552d-3282-4746-ba49-066d2bd8d44f@lucifer.local> References: <20251011093054.886460-1-ye.liu@linux.dev> Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20251011093054.886460-1-ye.liu@linux.dev> X-ClientProxiedBy: LO4P123CA0174.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:18a::17) To DM4PR10MB8218.namprd10.prod.outlook.com (2603:10b6:8:1cc::16) 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: DM4PR10MB8218:EE_|DS0PR10MB6725:EE_ X-MS-Office365-Filtering-Correlation-Id: e6a9cf4d-e09c-4e5a-073e-08de0a485669 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014|7416014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?2Gs7j1jWGib/6BlKOE64nbqt37vIf68H51LXjmXa+H+PA8eesrSQGEbZHeYY?= =?us-ascii?Q?1HlnFFrQsr2OA/9Pe27MF9t6o89eUF04X3NYYoHT8i49cqDPyZrpGYFTOnDQ?= =?us-ascii?Q?SpSFb2Rc6QqzQuJuACJGTvzhNkBJh2rDkYwkxxpeNw2EYXuSgVF43+/Ogq1B?= =?us-ascii?Q?aFQU1OQKdl3itGXqcCQVWHkSRy2k+aMyLoQQdJcO4G0NPalWbhnel8cB/mbm?= =?us-ascii?Q?UQBkqkPH5EC2ixoBz592zXJekHkD1U4g1yCl69YWQLCtd9ILFIOwXp4mYn2O?= =?us-ascii?Q?p+8D1hUFa9XeNLGD+qhfvagpBtkDruFyRa6Jq3KRRczrvL/4+5dFF+RGmEs2?= =?us-ascii?Q?dgNhAb0lEWaLVuStRvrlJV4G5roTASm0h15i+dtS6L2A92LJy3GkqC3oQw8k?= =?us-ascii?Q?KKAgPOmWB7nS5YJX8C23VHpSWxPjhvk3UE6ObLZKg2411NM96lYV5G3yFRKv?= =?us-ascii?Q?ipM9OrBa654Zet2joMU9Km9A65HZWvhhUOxjUH3ScPutmgu4vSWqms0VFWi+?= =?us-ascii?Q?0Zs54XlYOU/e1jaE0ZR94hRC945B4tpNspqKc2v/Qj7dvHiTBz3Nim9+1Zyc?= =?us-ascii?Q?epVMKmLis83s3/Sa4n6uDUJQsDG4WYCnkAL5DpFzK1MpI1rjZ3cW6HwvUM7a?= =?us-ascii?Q?HtkcsPPmsP84+LY045LSVxCwT6gPuJIkRqpSu0uEFpYFurTcsP21wPKrz8j5?= =?us-ascii?Q?+lkGb4u6fD1rTwhoHsi52g4I2LpraOUBhSU3LAHjq+iaqbAsKy/+/JKwrDNF?= =?us-ascii?Q?VRWSp0LTAwGoWYb4iFiUE28ci2JLpO1PGPDPaO3zrRpTxqCb2bQ4/ZQj6IxJ?= =?us-ascii?Q?kGaskPqgJCdGEMcNacpeaWaAJW3JqY39cGYYpmhbFpVbuTr+XpCr8D0/ryjJ?= =?us-ascii?Q?SQRwoUqLZkjMWQl7k8celeMRZkkf83x5wcumnc3jR7y40q7r3cMiKY5Cg901?= =?us-ascii?Q?wZp7aNLjWxoHA84BmKRTHzu7g4DhiKw5pwQhew//+dvvJLc1+0HmdCYAkVg0?= =?us-ascii?Q?mAUXV6NavaqMKHvJnXqGYRufojyDv3Sk8kicu4Gn+3OHc2qdFsmKdSy2Lk1X?= =?us-ascii?Q?Bh6fcYs804iFhjlTiJiMKCfc8rh5PFmIv0107R/4fNImK6SMtCYsGqDkcSfB?= =?us-ascii?Q?cfrk198qUikPjHLFdq06gK2uLN5OpSSp4CxZssnQPETQHfQfoWqralXpqfWY?= =?us-ascii?Q?Okr3ou0O2fbDwvuUWKfPCMK//9wYJSNqQO582frdfIkp9qOoqAJ18b4Z19+q?= =?us-ascii?Q?XHO9dLceIEnjLpV0Tv7dNBNwZUqk2jFB/OhUYx7jIbnjLYguoMbZdaPonwmP?= =?us-ascii?Q?pP5nBA8KCFIr4TDnELf1LcC45PU6anl4iDgW+2ZFLJj0qcV5izLsiv27qiEK?= =?us-ascii?Q?V0TPEEmSs6gfrbnm6/9ONzZ3f9mab+O6C5f6B23sup137L4jLItAyYRJh1tX?= =?us-ascii?Q?PCmlFnfMLrSaRPjYzL+d08clzlXstmGC?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR10MB8218.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(7416014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?dEx3b+L2k4F0pMEIICIU3qnP6Rrt4dNjNbANX3l9pMf4+z4va+dViad48l8w?= =?us-ascii?Q?fhh8RuP6JCg9a576uzqoK8ryq4P+iJPgjiiettQ+QNxPrpPCyXviDQfbESY9?= =?us-ascii?Q?OoYdLHFseQdXliTP8naYwx6VfiQYhrTTKQFTkInjYQOfM9pgCOO+6jy/aEuP?= =?us-ascii?Q?qPjDQelv3cyfcwaUS5v6ABBUL8MiLvhbJHpISuoi0ZCJRcxpgRuSjSVS6HK0?= =?us-ascii?Q?GXmRZtGrOcwcd1d9+c1B2/ocrad+ayc5m0PGUdhsaO7T1IE6L25kCiRYYqYP?= =?us-ascii?Q?Vb8exEkjSZLfGaeToO8GrBm1n0CZu30iV74rFwHgcBth4MzHBlaguY4tA7Qj?= =?us-ascii?Q?zOihuREHMhwZs0BeA05O+SxF2icGwdK7+mIQ+YqBNLshKIfuPpTKhoYd3zK1?= =?us-ascii?Q?UYytnBynqLbZS1B6ZOWhsO3e9tjOoBHPWOIE27chj3op2DveXbQlQJE/Wuk4?= =?us-ascii?Q?Vg04HZjg286s5NG4+fe4Pi73b3OEot+pzQF2nrHdEuyF0BVBEFkgF8dBow+g?= =?us-ascii?Q?fixh1AC7hte9BNiNLZN10HYuvnUFiyYATrpap7IELqFoKZQj89UBmH3rzLVM?= =?us-ascii?Q?tH5RXLsTzYQIs9OHtWDDCyAbEK2QPAvgLPpXXRJQI3McsJIxb4cccv/Jrot5?= =?us-ascii?Q?0vjjhPuvj8etDCdU0wnaZa0nyM7AqAsfV1/NQfflMlj8sbt+CvQahGvSv/SD?= =?us-ascii?Q?GS0D31U2+he8cBh7IY31XhyuyOHS522Am7ztyeHDxmixU+a1ZUtCDu3TXm3n?= =?us-ascii?Q?+SMrB0nNcCTNjEmHgdoMsPzXadysIVg9vMEqXgemKM8ZmvUE0WIcM2ah4uOd?= =?us-ascii?Q?Qp5Lz5IYWAcVquvcJTApXTGsiTzF5hEFYWSfUfYiBhxujx6sTAhudt4PzJec?= =?us-ascii?Q?cn9bOwda4KU2NnpWt0dwubSkhMXs6w9lDvakm6E7CFA9AwMA16hnyWGxs+Wu?= =?us-ascii?Q?f0MIHJ1tjC7jSN5tflp2uqfpLbB+5nyYBNfvFFH585iv7wdacvwOb2Rs6FKD?= =?us-ascii?Q?ZRV7mLjtt48Wjjxkc5RysYJXhsP9BS8Mh9kB9vyb4Xq/ZXOwOtzObwSre3ZY?= =?us-ascii?Q?gIAdDDnD1d5MOzAeTbmP3HNDmrZZQUQyPQbyUvZGUxtoXHIk0IrWkL/rsKCb?= =?us-ascii?Q?7/JpIUQbxXEvvbasyRbZj1DvIBqyWIrNEflCNmcZrNR5QaTyMseLkQFFCjCu?= =?us-ascii?Q?ftwSFNMj68enZ5RLmUbhDEsxqKwwTDsYhsY+dvalNzlBkYeFvrqSDhh00B9U?= =?us-ascii?Q?cLfp9a5qxqlsrt6tdVlRlZU+cf8czTzKxZOPH7r/qCZirE0aJ9fzeLOyzsIw?= =?us-ascii?Q?JHtCBhGwB3SGxIR0uXzaGvRwP9J5Y8WtkPGGPm1AFIlKyJayqKrEDtsG87D3?= =?us-ascii?Q?71eDAiC1cNOhu6kynEGDgPjsxY7KaOiMFDFyeDUz0MryqECtCyuJbYu/aZn/?= =?us-ascii?Q?xz7XBuuhGvRadZ8LCvSQOMTjuPV5weKaDYSAYhgPLNbevwPtfq2uL7IqRAid?= =?us-ascii?Q?u8PiJa2BVoCvMCv/XtB+RF9UnWMHwMOEwIssfh3f4fRB13cm5Bp9W9HNzTlB?= =?us-ascii?Q?1N8COPp4DPhKo5xQG2PzEXiVHkt+WJPfa186fmrZskL7oREUI1RIxx8RbLgo?= =?us-ascii?Q?zA=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: u12f9gLhjaO2v+tvsjd0xFL8C6v/K+7H8ZRsgIiZ1LmBo22lD3nm6RiYEtsgBrz7SMQFaRzIbIHQOcDyoA2lmMndODMH4YDveffKiYLfjrOrV6fbXSgN6DGsLMs+iiKPnkUcKAaTimIAEjYPGpeZxn82mT8mjzuIubRIh1OeZjut8CVt4s/2FPcV/RxF5MkMu2pXGRRguCkDPtEohKBRCWcEzZ2NZqv9Y7LK41zXEVhwMM1e0YZYzU5MYbDIsPDBu8KfshfRZIFQ/6AbD83JW5nuNS8eKWxIKVcV4r8FJ6G8vMNJEH+Ts98WJi+SOJGPHPfxiuzDEpKsN2gx9qrl9C57nW7UvDjC8GVlvCnNUVTrAxAw6SyARM3NeRuxAgOp9+AjAp4yRfzEVvoLhQPuw7DCDVTSN+q3tKPoPB4r4tAkXBBXszmk/hwc2/bJagaXPVo8VGqqAJ01WSGa6OwkwtUpXoBk3Cxp2AM44/Ks15FNub9UeB3qUdmUPv2kLYgVVKgPE9TWw6Dx5aa0hptm7QADHROsWOI8UYiI6eVUjqWjRVnyTwRY07shjqX3VQEfdktaPBtZYpRFWvCIzxINyfd9wOuBmx5siAmxvxBTBV0= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: e6a9cf4d-e09c-4e5a-073e-08de0a485669 X-MS-Exchange-CrossTenant-AuthSource: DM4PR10MB8218.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Oct 2025 11:04:53.7490 (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: tJbUMni+t5ZRgmGa7j2ICswxGQkDo+Eaq41YUCC4Oqc5xsWo96ntUZBB0CncxvsYBgPq6LtPTj/lpDgZxYlDu1I8pCBfIWLgHV6PdDOtdu4= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR10MB6725 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1117,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-10-13_04,2025-10-06_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 malwarescore=0 mlxscore=0 adultscore=0 phishscore=0 bulkscore=0 mlxlogscore=999 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2510020000 definitions=main-2510130050 X-Proofpoint-GUID: wvHfdQgzkt8IF2sfjxaLoM4bahe-iNM_ X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMDExMDAwNyBTYWx0ZWRfX8tjX7ZeKwwbx vNmF8+TfnBeunI38ZlHpMPpndMWffu3rNf4s93KkiWgT3werLdyTU1DVxwMoBq+zORfqcbtIv3r 56gV9cw6xu+mtdIV9bAn8XuCX+MWqBFDMYLIivgxaDnCX9HxemhjApubO2aUPjIscmCizlaWMHT SJlSFbMUhEC4rq29UjAQDJndf+iKu+s12m3gj4/bf3A8i90bKRPVpLs01F8xnlXFYkj6sx9VQmQ dO/AxkGGZtEFCmD+LpdgEtawfRPbkfLtqwPoVhiTsb2Ny7EAAWQNHD18+KvxIV8vbgn/tl9/dXH 1sBt9/zxNt2yNXM6Vhf2FhPxRZURw5X49qKFaJz77Lm65dp4pQVSpdLnmnYvAUxxYHxG3fvenKl PYYaVKQkuKoo5RAwKEduF/I/haYtbA== X-Authority-Analysis: v=2.4 cv=OolCCi/t c=1 sm=1 tr=0 ts=68ecdcda cx=c_pps a=OOZaFjgC48PWsiFpTAqLcw==:117 a=OOZaFjgC48PWsiFpTAqLcw==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=kj9zAlcOel0A:10 a=x6icFKpwvdMA:10 a=GoEa3M9JfhUA:10 a=CQz0DxbUt3c5JPvD0lwA:9 a=CjuIK1q_8ugA:10 a=cPQSjfK2_nFv0Q5t_7PE:22 X-Proofpoint-ORIG-GUID: wvHfdQgzkt8IF2sfjxaLoM4bahe-iNM_ On Sat, Oct 11, 2025 at 05:30:52PM +0800, Ye Liu wrote: > From: Ye Liu > > Hello MM maintainers and drgn community, > > This RFC proposes to convert VM_* flags from #define macros to enum > vm_flags. The motivation comes from recent drgn development where we > encountered difficulties in implementing VM flag parsing due to the > current macro-based approach. This isn't going to work sorry, it's not valid to have flag values as an enum (they're distinct) and also - importantly - I'm going to be making significant changes to VMA flags soon (to allow us to have arbitrary number of VMA flags on _all_ architectures as recently done with my series doing something similar with mm flags). HOWEVER. My upcoming (likely, multiple) series will result in code using VMA flag _bit numbers_ in preference to raw VMA flag values. Therefore, these _could_ be enums. I will note this down as something to look at when I implement the series (it's going to take a while, given the very extensive usage of VMA flags throughout the kernel). Cheers, Lorenzo > > Problem: > - Debugging tools like drgn must hard-code VM flag values > - No type information available for external tools > - Maintenance burden when flags change in kernel > - Error-prone flag interpretation > > Solution: > Convert to enum while preserving all existing values and semantics. > > Benefits: > 1. Better type safety for kernel code > 2. Enabled dynamic VM flag parsing in debugging tools > 3. Improved debugger experience (meaningful symbol names) > 4. Easier maintenance and extensibility > 5. No functional changes or ABI impact > > This change would particularly help with implementing the 'vm -f' option > in drgn's crash mode, allowing proper VM flag filtering and display > without hard-coded values. > > I'm seeking feedback on: > - Overall approach acceptability > - Any concerns about enum usage in this context > - Potential impacts on other subsystems > - Suggestions for alternative solutions > - Whether this should include trace events update > > Looking forward to your comments. > > Signed-off-by: Ye Liu > --- > include/linux/mm.h | 90 +++++++++++++++++++++++--------------------- > include/linux/mman.h | 7 ++-- > 2 files changed, 50 insertions(+), 47 deletions(-) > > diff --git a/include/linux/mm.h b/include/linux/mm.h > index d16b33bacc32..7030108c3759 100644 > --- a/include/linux/mm.h > +++ b/include/linux/mm.h > @@ -268,62 +268,66 @@ extern struct rw_semaphore nommu_region_sem; > > extern unsigned int kobjsize(const void *objp); > #endif > - > /* > * vm_flags in vm_area_struct, see mm_types.h. > * When changing, update also include/trace/events/mmflags.h > */ > -#define VM_NONE 0x00000000 > +enum vm_flags { > + VM_NONE = 0x00000000, > + > + VM_READ = BIT(0), /* currently active flags */ > + VM_WRITE = BIT(1), > + VM_EXEC = BIT(2), > + VM_SHARED = BIT(3), > > -#define VM_READ 0x00000001 /* currently active flags */ > -#define VM_WRITE 0x00000002 > -#define VM_EXEC 0x00000004 > -#define VM_SHARED 0x00000008 > + /* mprotect() hardcodes VM_MAYREAD >> 4 == VM_READ, and so for r/w/x bits. */ > + VM_MAYREAD = BIT(4), /* limits for mprotect() etc */ > + VM_MAYWRITE = BIT(5), > + VM_MAYEXEC = BIT(6), > + VM_MAYSHARE = BIT(7), > > -/* mprotect() hardcodes VM_MAYREAD >> 4 == VM_READ, and so for r/w/x bits. */ > -#define VM_MAYREAD 0x00000010 /* limits for mprotect() etc */ > -#define VM_MAYWRITE 0x00000020 > -#define VM_MAYEXEC 0x00000040 > -#define VM_MAYSHARE 0x00000080 > + VM_GROWSDOWN = BIT(8), /* general info on the segment */ > > -#define VM_GROWSDOWN 0x00000100 /* general info on the segment */ > #ifdef CONFIG_MMU > -#define VM_UFFD_MISSING 0x00000200 /* missing pages tracking */ > -#else /* CONFIG_MMU */ > -#define VM_MAYOVERLAY 0x00000200 /* nommu: R/O MAP_PRIVATE mapping that might overlay a file mapping */ > -#define VM_UFFD_MISSING 0 > -#endif /* CONFIG_MMU */ > -#define VM_PFNMAP 0x00000400 /* Page-ranges managed without "struct page", just pure PFN */ > -#define VM_UFFD_WP 0x00001000 /* wrprotect pages tracking */ > - > -#define VM_LOCKED 0x00002000 > -#define VM_IO 0x00004000 /* Memory mapped I/O or similar */ > - > - /* Used by sys_madvise() */ > -#define VM_SEQ_READ 0x00008000 /* App will access data sequentially */ > -#define VM_RAND_READ 0x00010000 /* App will not benefit from clustered reads */ > - > -#define VM_DONTCOPY 0x00020000 /* Do not copy this vma on fork */ > -#define VM_DONTEXPAND 0x00040000 /* Cannot expand with mremap() */ > -#define VM_LOCKONFAULT 0x00080000 /* Lock the pages covered when they are faulted in */ > -#define VM_ACCOUNT 0x00100000 /* Is a VM accounted object */ > -#define VM_NORESERVE 0x00200000 /* should the VM suppress accounting */ > -#define VM_HUGETLB 0x00400000 /* Huge TLB Page VM */ > -#define VM_SYNC 0x00800000 /* Synchronous page faults */ > -#define VM_ARCH_1 0x01000000 /* Architecture-specific flag */ > -#define VM_WIPEONFORK 0x02000000 /* Wipe VMA contents in child. */ > -#define VM_DONTDUMP 0x04000000 /* Do not include in the core dump */ > + VM_UFFD_MISSING = BIT(9), /* missing pages tracking */ > +#else > + /* nommu: R/O MAP_PRIVATE mapping that might overlay a file mapping */ > + VM_MAYOVERLAY = BIT(9), > + VM_UFFD_MISSING = 0, > +#endif > + > + VM_PFNMAP = BIT(10), /* Page-ranges managed without "struct page", just pure PFN */ > + VM_UFFD_WP = BIT(12), /* wrprotect pages tracking */ > + > + VM_LOCKED = BIT(13), > + VM_IO = BIT(14), /* Memory mapped I/O or similar */ > + > + /* Used by sys_madvise() */ > + VM_SEQ_READ = BIT(15), /* App will access data sequentially */ > + VM_RAND_READ = BIT(16), /* App will not benefit from clustered reads */ > + > + VM_DONTCOPY = BIT(17), /* Do not copy this vma on fork */ > + VM_DONTEXPAND = BIT(18), /* Cannot expand with mremap() */ > + VM_LOCKONFAULT = BIT(19), /* Lock the pages covered when they are faulted in */ > + VM_ACCOUNT = BIT(20), /* Is a VM accounted object */ > + VM_NORESERVE = BIT(21), /* should the VM suppress accounting */ > + VM_HUGETLB = BIT(22), /* Huge TLB Page VM */ > + VM_SYNC = BIT(23), /* Synchronous page faults */ > + VM_ARCH_1 = BIT(24), /* Architecture-specific flag */ > + VM_WIPEONFORK = BIT(25), /* Wipe VMA contents in child. */ > + VM_DONTDUMP = BIT(26), /* Do not include in the core dump */ > > #ifdef CONFIG_MEM_SOFT_DIRTY > -# define VM_SOFTDIRTY 0x08000000 /* Not soft dirty clean area */ > + VM_SOFTDIRTY = BIT(27), /* Not soft dirty clean area */ > #else > -# define VM_SOFTDIRTY 0 > + VM_SOFTDIRTY = 0, > #endif > > -#define VM_MIXEDMAP 0x10000000 /* Can contain "struct page" and pure PFN pages */ > -#define VM_HUGEPAGE 0x20000000 /* MADV_HUGEPAGE marked this vma */ > -#define VM_NOHUGEPAGE 0x40000000 /* MADV_NOHUGEPAGE marked this vma */ > -#define VM_MERGEABLE BIT(31) /* KSM may merge identical pages */ > + VM_MIXEDMAP = BIT(28), /* Can contain "struct page" and pure PFN pages */ > + VM_HUGEPAGE = BIT(29), /* MADV_HUGEPAGE marked this vma */ > + VM_NOHUGEPAGE = BIT(30), /* MADV_NOHUGEPAGE marked this vma */ > + VM_MERGEABLE = BIT(31), /* KSM may merge identical pages */ > +}; > > #ifdef CONFIG_ARCH_USES_HIGH_VMA_FLAGS > #define VM_HIGH_ARCH_BIT_0 32 /* bit only usable on 64-bit architectures */ > diff --git a/include/linux/mman.h b/include/linux/mman.h > index 0ba8a7e8b90a..4a0adbdeccdd 100644 > --- a/include/linux/mman.h > +++ b/include/linux/mman.h > @@ -130,10 +130,9 @@ static inline bool arch_validate_flags(unsigned long flags) > * ("bit1" and "bit2" must be single bits) > */ > #define _calc_vm_trans(x, bit1, bit2) \ > - ((!(bit1) || !(bit2)) ? 0 : \ > - ((bit1) <= (bit2) ? ((x) & (bit1)) * ((bit2) / (bit1)) \ > - : ((x) & (bit1)) / ((bit1) / (bit2)))) > - > + (((bit1) == 0 || (bit2) == 0) ? 0 : \ > + ((bit1) <= (bit2) ? ((x) & (bit1)) * ((bit2) / (bit1)) \ > + : ((x) & (bit1)) / ((bit1) / (bit2)))) > /* > * Combine the mmap "prot" argument into "vm_flags" used internally. > */ > -- > 2.43.0 >