From nobody Tue Feb 10 03:38:58 2026 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 93FDB2D8DD6 for ; Thu, 22 Jan 2026 13:03:13 +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=1769086995; cv=fail; b=fsYDtlNU7IGi1clyG0XU7t2X9ZUkeXGIz0csSoXDlPP/KveXZOpYpSaeNCcWp1OMPnD9iyury8FVdPfpmtYgvRBvjl3jKmojUWrx0RfJ7ZnDAIS/hh725eo6CNUbg4QK1VStqZL02U+6pVJ0l57qvAh3HP0E7c/RU9IF4BQs9iY= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769086995; c=relaxed/simple; bh=Y3VudCKazJZkdzC3LNz9X0i9vVMcximK12kqlHezwhg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=elQkJSeHP2HJ3FleLnrjz33GeZE5C2DN/88mv/G6hRbWQ4Dv31HmzOWFYZeZkCwf6XvzX5pB2XzZMh8UzEYDg7gKmuzOHV7hp+pNoul0BYe+SyebotfZhSGPts1XhK32AWgFVDUHWbYFJLyQLc5ssXhTfCUiSdY86AjNTJps3fU= 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=Aqxjwwhx; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=vVfmzLw1; 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="Aqxjwwhx"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="vVfmzLw1" Received: from pps.filterd (m0246627.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 60M0SXKN3028845; Thu, 22 Jan 2026 13:02:10 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=7RBkACBSpdvuYCPvlFWkQvgehMBAdoRwLW0QOdffuZY=; b= Aqxjwwhx9NgdV5sBA0wA6WPMuqZC/lwk5uYD6wlG96gXv1bM/xnCFL6I0Qk0C68l xbtYEIzb58JUSrIGxeFWo1R5Xxw/jOpQnkxH/ONK1Q6SIEql4O+KaESKFWyi7tJq ym/uo5pmeJcgg8lez2KPYMqoeQ0GHyN1/Tmey7T6jgjhK01r2o5PVxO0tO1dQIa+ 1p209ykg09n98ijvN0MXbtQsMkR+xdVqV/jXE5U5WsxjEh6OYHXQ/JEV9eUMJ0Ii 2JGw5ouVtBnZ6CMcy9akft/IkNAhhKqkarq8lOdYLhrOEJpzUzMcsq+WKnBoisvo N1Ppzqq9uLCFkme3xSwD1g== Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4br10vynqp-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 22 Jan 2026 13:02:09 +0000 (GMT) Received: from pps.filterd (iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 60MC52mP022610; Thu, 22 Jan 2026 13:02:08 GMT Received: from dm5pr21cu001.outbound.protection.outlook.com (mail-centralusazon11011051.outbound.protection.outlook.com [52.101.62.51]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 4br0vgjnvd-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 22 Jan 2026 13:02:08 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=azkGDkoM8DWcPuwGpG8ZFUded77pdBWdppH+tdSL+jnrmJ4WPRwClkrD3w3FISygm/99Jt7jL16gKMEJ0xc/BdAs9qFh3rKtIzAAZZtlvgZa0Dd6fDc4TVWqcXow9rEwSn6WRHCZMVTe8nQNRw4SqhW7IhNIJ3l1ITd1WrVgSY0itWfi8HdN3pB5EcJA/AokFxjIt4plyYg0Wxsz8OKLc+AnbVFn2Hs0UCyW0WY5drcb0tCs4ZMEwubM3c0z9s7FhOLn6Op/ZmSUwyJNIZdetyfUuMP3MHWY3WIegemj3wBJdfU0yOMY5Xuk2otFdt9voWo82USMgLBc8Xi0nD2a1w== 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=7RBkACBSpdvuYCPvlFWkQvgehMBAdoRwLW0QOdffuZY=; b=IjjZl0SG66IFL0q9j1USJdEBpMKTk5N5OIpOFOq9ziTBDwjxoE64JrtuM0ISiBRHYkqwz3cAz473pOhfST8qDi2ZlOHDeY96nW+PVOGeyNmfVjRPWZajn4poWnYJqbh3A9fxhqjGsS6EcyeTHFo7BGJXTyKn0E4o2N0/WwYgdicGxORTL1KdqMGn+R3kYXXciabM6zMrTcSzcbhdw4AzwEH48ikdilNa7C6ZKX3d1AyB7JoWxGN7WLNpTq304K2vYXN6BQWX60kQEOo7qZ0xExYgzkRiAR5C0+VMDxwncBGob1MNFHhE3T29P9nfX2zxrrK4eRuQfjT6pGs5k6VB+g== 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=7RBkACBSpdvuYCPvlFWkQvgehMBAdoRwLW0QOdffuZY=; b=vVfmzLw1NiPjVNdcKZRXTjP4PG/hgqWe7LUqulaVBO6U1zed4C4pChJjjb/i29ygOGxxQCws1l8+ckhTV3NyKFs3MB7Qh4xW76fOJ3anOxpfj/wrLXYJmWRdfKtksygZn03iAAk5roj0vEoHGmmFAOZIVZfnxP7nz6mdIgJXXRU= Received: from BL4PR10MB8229.namprd10.prod.outlook.com (2603:10b6:208:4e6::14) by BLAPR10MB4883.namprd10.prod.outlook.com (2603:10b6:208:334::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9542.11; Thu, 22 Jan 2026 13:02:05 +0000 Received: from BL4PR10MB8229.namprd10.prod.outlook.com ([fe80::552b:16d2:af:c582]) by BL4PR10MB8229.namprd10.prod.outlook.com ([fe80::552b:16d2:af:c582%6]) with mapi id 15.20.9520.005; Thu, 22 Jan 2026 13:02:05 +0000 From: Lorenzo Stoakes To: Andrew Morton Cc: David Hildenbrand , "Liam R . Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , Shakeel Butt , Jann Horn , linux-mm@kvack.org, linux-kernel@vger.kernel.org, linux-rt-devel@lists.linux.dev, Peter Zijlstra , Ingo Molnar , Will Deacon , Boqun Feng , Waiman Long , Sebastian Andrzej Siewior , Clark Williams , Steven Rostedt Subject: [PATCH RESEND v3 02/10] mm/vma: document possible vma->vm_refcnt values and reference comment Date: Thu, 22 Jan 2026 13:01:54 +0000 Message-ID: X-Mailer: git-send-email 2.52.0 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: LO2P123CA0001.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:a6::13) To BL4PR10MB8229.namprd10.prod.outlook.com (2603:10b6:208:4e6::14) 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: BL4PR10MB8229:EE_|BLAPR10MB4883:EE_ X-MS-Office365-Filtering-Correlation-Id: 6738896d-43f0-4440-2edf-08de59b6718a X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|376014|7416014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?F2B9q4xK9cJJkkQChRLieB8aHxFIpoG3gyeR8g8S5oX6PFHN8Ri7jXlnx7GX?= =?us-ascii?Q?ztNO1c6ZG0fXA3t4wOZOG/xVO44ptgLVS/SvExIkIMjYakLePsofp+NXVADX?= =?us-ascii?Q?ubvPRkqKidFqPfeIdk+HskaG0u5sVeLkNJkuni9Wee5U/MBO4Wmpm7nfFu+I?= =?us-ascii?Q?4WVGH57GvMUK8zTLbgBMYopotQZ5BLfToj57xGIN2X7zxMmGnJMT3Zvzknrs?= =?us-ascii?Q?Pgn4gEffZlFanaKT2cg2rxl261GjBxQs5JLuayAFXkdHVLqBK+PiC+SSqrTy?= =?us-ascii?Q?JMJBhozuxQ5TbGShya5IorEb4DNXbCu/tFii46hfefXaaQB0SEDT3oM2ZFwI?= =?us-ascii?Q?bgE2fQmwotVluZmTj/rySN1KqU9ti7mVFzAO9bFuUgpTKDBtKpaGb1FBHn0y?= =?us-ascii?Q?H4vytAVXbP8Kdq4YFpC4sWpKmMJU5X36NoM19vLDixrML+rV8dd3CrAfL/60?= =?us-ascii?Q?J/BFTUnK8B1POQMEH7LB5GOAAAM3gK0TqudGm0ENe3eBdRa36sir/7HgD/CR?= =?us-ascii?Q?oF22ARmnKH4NdbgQASMYzI2bWPKPtEx1zkCS8k17ZH1p0Tdzv/IdzkOkc+aq?= =?us-ascii?Q?UJDV3VO0jpEdHufnWt1KauEpC/JqV/99QCVzOL0c32aPHWBEWXh34aMSWFeX?= =?us-ascii?Q?sb5j+SC2LPikz+X2XB165Pky+00mXOpsHOKq0GeoYg7PtVUtw7hv5Qe6j0Fn?= =?us-ascii?Q?DrP2o/Xgspp+0fdA9uAuH79lXfcKZ8+OeCaPjvvB2zevfUZaAqVPDd4y4vWn?= =?us-ascii?Q?n2kVNpy85tUnezJyR6MMEUgeYbCSLWqijvnht2I5SKZWic9Faw9Ujr39J7/j?= =?us-ascii?Q?UQzgzvvcus2SExGHKgoXb1+VTevFxdRUyvygLJq1PifsHuDfyS4Id75k5D9i?= =?us-ascii?Q?4cNrLkln9ErWEH8+wh3/CrCXkq6hAO7U1gor6abEcw9sMZAdcjpZg0ZhPUX1?= =?us-ascii?Q?pNQxBWoVfPGgYLm1eJnT0u7fT35E4rViWKHKxI6ZyadCWW2vtMB9Dx1Q+q5M?= =?us-ascii?Q?ApubdVpG/CK2FjVL6x5F4HNNMyr1lqudSG8NkxHA1rAc/yNxCIfiqV2lnpiW?= =?us-ascii?Q?YUuGPYRNrON5SPFu+0QwGP4UBrCtzJ+5QrJ8Ek6Mxte3XSqcwMgYFICeZJEX?= =?us-ascii?Q?/XPgiuAMIRKge9auqGaSkksTFKEZGmo7DxNtrp7Q7u5/17xVzpEpeu3djf6h?= =?us-ascii?Q?5f8olqNoPbt5YHpeF/gDNz5zaUkidOJz33uqsphi2ymdRedL1I8Duop4d0UI?= =?us-ascii?Q?zAPIbqJTBBFIjCuXO366lDbBmuua/AJD5srsnytM3TcltvVQ0qI5GdaH3d9m?= =?us-ascii?Q?ife766DBpXwH0XW2DxiqOqvWjcs2pJFnayJoHUVy6N1nFJc3mH9pK2RTCqa4?= =?us-ascii?Q?uWwZpmgFokq3fX5YArBWPicmEKiPGi3TT6tJsIrgSlOZmAg+2PQQgI6MseHQ?= =?us-ascii?Q?aJLxcb77zKAQtrwPwbkmjRBuovUjKQ+4W5HdKscZQ7MUlTs10CHCKl8K+VQ5?= =?us-ascii?Q?X2GXAQFqODa8epZXzcp8tvHKp1e8n3N9T+VaizlEsQme53ZY+XuvDplPD1YQ?= =?us-ascii?Q?RwxRioDfZiE+52ytW0U=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BL4PR10MB8229.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(7416014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?IjOXgSL/EPsDNLkEdn4uSYwVH8VOaDZxJw5p+4VwmnpUXcpu8UPF1qMO4b5v?= =?us-ascii?Q?lqZJFBpfVwQF221hcY9Ml7Ju4W/+btGFE5fZhngFSvxHTCixIQ7brA0PiEtd?= =?us-ascii?Q?qKYA0kQDwVscq17DJUHQYJB12Hlibbxd/dCyTTBHOSY8Ee5gnzXYg7nVM6T9?= =?us-ascii?Q?7C9z/2y5WLiBqSVl/0xDupMINyAg1ygy254gnQFrVAmqAm6AH6Pt2c9nyOpa?= =?us-ascii?Q?bMZcV/tKQ+o1SM8LvENYrZ7ypFM/f2UJtUnya4Er/5wRVxPPILzEKH5Tbczb?= =?us-ascii?Q?cItip7WsuS0k2k7S5iHI3fNdKOnPglGbJCLh7o16Ax/cjr6w1QfDwDkx6FcU?= =?us-ascii?Q?M6+rKNkLTEoYokSBR8zw9FiH8dZIQ6uj3ka2wJfIutmfaVMcZdm+Bs8eYTnN?= =?us-ascii?Q?5T422defqxxSgS0g1BDgSkovdVucLKImVXl9DNHEepxUl9FqG9+NfeXiYChY?= =?us-ascii?Q?GcC+bdL0jDG5Rt5A9vBZF/xNr395Zq0XU5oFM/0BDel0IR8E5e6xqsSwyG3m?= =?us-ascii?Q?HHOqgun2fGifQ+4eBXWuMQE9vdTs+QDlzEQtio0P966eiCyhKrIgWzf5QH4Q?= =?us-ascii?Q?c1BpfMhiSzPmSu+zREX+5c6Gzo8Kiivp2+HOAVpGY8brSVmS7+JPOJ9Tw4kI?= =?us-ascii?Q?g91utgWmgDTgK6RMBJtO0jQRQyqV0AgukX4OIffn/Ee+dkI2FdSpSP7IRz5f?= =?us-ascii?Q?DIHeeHgmh5ZafVSKPvPlFhox8LP+CN8vRQLjpqwHHUQ4z8MKcobbj3zvVGWk?= =?us-ascii?Q?mXpX2NQJWy+gMQpYr1VRTGbFF++UOYsG8s9vfSohxTGQm0SZqyXpZR0eOH9Q?= =?us-ascii?Q?6vtZlg5Lb1InT/LB3YukR1Jh0jdPd61mOa6EQqCxaUbaUVxKRnvCkGQ9tUTU?= =?us-ascii?Q?/f50yC4oFrDoGhZIXnGiI5Wjrc3y+nTYAmhgFw1PbDBFXxyTtVdw3lzpxHhQ?= =?us-ascii?Q?mMlcynkNKPH/ikcczCMO5+mbZAfzS0kBF2xWqj7D1UY1pUyLnMCUDzI5VgaW?= =?us-ascii?Q?n6CPCy+QiQe+lpu2A5s9s7u0BIckiaQAUdL09Momcqm1/Zf0lbG17/0uTubz?= =?us-ascii?Q?XiqBA2eyZJpFD/ngZ+WVUPHlhbdZqXqI1bGGgE5gh54QYwPlBlTmUOrfxbeD?= =?us-ascii?Q?hQ4loRyG7av0Nt/OHeD7IoAAEe4GqIKzi7XIsc/EfaIFvdeMtbS+pQdGV6PI?= =?us-ascii?Q?GdiuTlLJMoQ1fLoiX5UkU4JgTw/bWHWm+OWquUbp7Jg+Lnz/1SNU0C6iUQoN?= =?us-ascii?Q?JEhzmpv78DIi05R8kEYA9+bbeh/Hm1bII3ZUtLLZnyONgN8Hd09DbWU9rLU0?= =?us-ascii?Q?UN6Ofe8W2gHnaiIuBVDIlMGq0/kkQebjxeKZ2e776hldvyPYMzt+4CvcyNbn?= =?us-ascii?Q?wl9b5SwB1VaFAfhcPDj9y5fcAIAj28F5qd9uaCD6KlEUblzAPqKh4iA5tcM7?= =?us-ascii?Q?UyVa+l+UohN5Tb+fc6CW+bMkImTC30iR5NzHSLMx24TOnwLIJKvC2J+6VMTK?= =?us-ascii?Q?lsY/wPtXwORFctl4ZrfNgnr9k5QPrYRnMGfGqLeOSVzTFqqjOa5g2BRssIvj?= =?us-ascii?Q?FtWgVXIDkogpOQccbSCmuJOsE3N3VNnE/bSp07WRC5WDtyi73tNET6M7T6dE?= =?us-ascii?Q?GiNIwh7cPJGE56nrfu1jaotRP6atQ+vT5rWV3seFzLHFOTFTmJjRR6ivfysL?= =?us-ascii?Q?+V1kKf1gFtS/WsNUfJeeYTmYrsPBvg8CYdH6njZawyk0ImjjjRH+7H+JazSV?= =?us-ascii?Q?Zh1nt2MJWeJtgZxremlpuZylGwIcgjo=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: ya3Uxhxdrww+AhXEPxH/XHxnP/MRVJ6zU6TtrQUt0n/nglU0T3tsvqw+p0haBn43Np0pKGm5jLekqtstaeqbP1uc4DJ4250F+dvDAVo/o+GyOzpOfdZTlEha902way2en0wx6fF8Qe9z4RizEaE6EEkUvB+kcTXJvxfRb2l+iApR2R6PaBfSp0Cy2Qrz3sImQWxNgZVpEZ+h5tFLg44mxieksBGbYltShii80T4HwjGLC5I98uk+pJdIuubKVrdxNV/Myo/8DqKiwUrj1YNOObwLqPVErGCrLGJYOPEAkHp+ifm27NZ2oPnIYcicykwW2RzYchl5idC0YQcxZZCmT9ioJd0Rdd5Ogrv7r6k5hUveNWWu27OO0qFxuIgdbYd5PrWLhAWp4cwmtzPKeRNwNo+zTHt6Y8HuoDtwapr5lW1VBQXDRm5w49JPJHeenzDwPonDiepaKbEjJtNuGzznkzwfue/CEwzHvCrQUuxQtHiLhFs1mx4bajoNpRxXHEvf0Ym0V5phsj5QDYsaA1CV9Z580/S46Ur7XM84dwNbgq8OixI+U1pE8QXivyCvxzq1fi41W5e0m0ZTRhRaDraBc0vTd/zGYaVWDT+rTz6O6wY= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6738896d-43f0-4440-2edf-08de59b6718a X-MS-Exchange-CrossTenant-AuthSource: BL4PR10MB8229.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Jan 2026 13:02:05.7833 (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: kC49dEypxjnBLaCJt2b18XGS4+ZFvpjLRh601O+yUJcJlDCf/c5QPUMu1H+xOzPeXkKRngPx0josjhlwTAmB1ft7dgkQe1H9C9fIJQSi3rc= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLAPR10MB4883 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.20,FMLib:17.12.100.49 definitions=2026-01-22_01,2026-01-22_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 adultscore=0 bulkscore=0 phishscore=0 mlxlogscore=999 mlxscore=0 malwarescore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2601150000 definitions=main-2601220097 X-Authority-Analysis: v=2.4 cv=H4nWAuYi c=1 sm=1 tr=0 ts=69721fd1 b=1 cx=c_pps a=zPCbziy225d3KhSqZt3L1A==:117 a=zPCbziy225d3KhSqZt3L1A==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=vUbySO9Y5rIA:10 a=GoEa3M9JfhUA:10 a=VkNPw1HP01LnGYTKEx00:22 a=yPCof4ZbAAAA:8 a=px5gXGW_QSS6PAkXjB8A:9 cc=ntf awl=host:12103 X-Proofpoint-GUID: t2uOjZzRd1LHl4JOAW71lsUm_AXN5bXX X-Proofpoint-ORIG-GUID: t2uOjZzRd1LHl4JOAW71lsUm_AXN5bXX X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTIyMDA5NiBTYWx0ZWRfX503/btu6FzuO JK7pAWSahL1afwlTdZQI9AI33ExtR49P2P372f74Z4466d8wWccdUu21tfGqfS4ReCQIgjPDMnf POXJXw7eYWAywGLRLgZDfcgQPXLeglt6xfXgwqeQNS8H6gWo1dahcRUWempqQb5/TFFctkk3Ias Jsi4xzgOzV8zFboAL9xrtDPAADKlr8luzupKWxzQw+0mXEc8MtHIUqm6Gyz8Vxd2B1eQvDcqTdP JPm9P8ZTvPRmQrXFDwgpGZRIB+DLB5p55KCp0EDlmKMXjbSojgEtYZDciudwxGkI4V5omrOmGYD gVXscId+I1onSLkQ8GcLGLCmIy8H7BMJthlLr9KOp2EhpKCQUiaDoQIonECUX6VwteBn7zDTgqc WdocdQI81s4zNY/ix2WlvDJVlLjjDhk9rJd5LOU2Zm1+vTHr7VsTDTCbDgDkvv/rnfpBbxCtLlk JCaK/n+WaoYF9LYs+vAYtvX+TGjR+wulaKm9bArU= Content-Type: text/plain; charset="utf-8" The possible vma->vm_refcnt values are confusing and vague, explain in detail what these can be in a comment describing the vma->vm_refcnt field and reference this comment in various places that read/write this field. No functional change intended. Signed-off-by: Lorenzo Stoakes --- include/linux/mm_types.h | 39 +++++++++++++++++++++++++++++++++++++-- include/linux/mmap_lock.h | 7 +++++++ mm/mmap_lock.c | 6 ++++++ 3 files changed, 50 insertions(+), 2 deletions(-) diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h index 94de392ed3c5..e5ee66f84d9a 100644 --- a/include/linux/mm_types.h +++ b/include/linux/mm_types.h @@ -758,7 +758,8 @@ static inline struct anon_vma_name *anon_vma_name_alloc= (const char *name) * set the VM_REFCNT_EXCLUDE_READERS_FLAG in vma->vm_refcnt to indiciate to * vma_start_read() that the reference count should be left alone. * - * Once the operation is complete, this value is subtracted from vma->vm_r= efcnt. + * See the comment describing vm_refcnt in vm_area_struct for details as to + * which values the VMA reference count can be. */ #define VM_REFCNT_EXCLUDE_READERS_BIT (30) #define VM_REFCNT_EXCLUDE_READERS_FLAG (1U << VM_REFCNT_EXCLUDE_READERS_BI= T) @@ -989,7 +990,41 @@ struct vm_area_struct { struct vma_numab_state *numab_state; /* NUMA Balancing state */ #endif #ifdef CONFIG_PER_VMA_LOCK - /* Unstable RCU readers are allowed to read this. */ + /* + * Used to keep track of the number of references taken by VMA read or + * write locks. May have the VM_REFCNT_EXCLUDE_READERS_FLAG set + * indicating that a thread has entered __vma_enter_locked() and is + * waiting on any outstanding read locks to exit. + * + * This value can be equal to: + * + * 0 - Detached. + * + * 1 - Unlocked or write-locked. + * + * >1, < VM_REFCNT_EXCLUDE_READERS_FLAG - Read-locked or (unlikely) + * write-locked with other threads having temporarily incremented the + * reference count prior to determining it is write-locked and + * decrementing it again. + * + * VM_REFCNT_EXCLUDE_READERS_FLAG - Detached, pending + * __vma_exit_locked() completion which will decrement the reference + * count to zero. IMPORTANT - at this stage no further readers can + * increment the reference count. It can only be reduced. + * + * VM_REFCNT_EXCLUDE_READERS_FLAG + 1 - Either an attached VMA pending + * __vma_exit_locked() completion which will decrement the reference + * count to one, OR a detached VMA waiting on a single spurious reader + * to decrement reference count. IMPORTANT - as above, no further + * readers can increment the reference count. + * + * > VM_REFCNT_EXCLUDE_READERS_FLAG + 1 - VMA is waiting on readers, + * whether it is attempting to acquire a write lock or attempting to + * detach. IMPORTANT - as above, no ruther readers can increment the + * reference count. + * + * NOTE: Unstable RCU readers are allowed to read this. + */ refcount_t vm_refcnt ____cacheline_aligned_in_smp; #ifdef CONFIG_DEBUG_LOCK_ALLOC struct lockdep_map vmlock_dep_map; diff --git a/include/linux/mmap_lock.h b/include/linux/mmap_lock.h index 5acbd4ba1b52..a764439d0276 100644 --- a/include/linux/mmap_lock.h +++ b/include/linux/mmap_lock.h @@ -130,6 +130,9 @@ static inline bool is_vma_writer_only(int refcnt) * attached. Waiting on a detached vma happens only in * vma_mark_detached() and is a rare case, therefore most of the time * there will be no unnecessary wakeup. + * + * See the comment describing the vm_area_struct->vm_refcnt field for + * details of possible refcnt values. */ return (refcnt & VM_REFCNT_EXCLUDE_READERS_FLAG) && refcnt <=3D VM_REFCNT_EXCLUDE_READERS_FLAG + 1; @@ -249,6 +252,10 @@ static inline void vma_assert_locked(struct vm_area_st= ruct *vma) { unsigned int mm_lock_seq; + /* + * See the comment describing the vm_area_struct->vm_refcnt field for + * details of possible refcnt values. + */ VM_BUG_ON_VMA(refcount_read(&vma->vm_refcnt) <=3D 1 && !__is_vma_write_locked(vma, &mm_lock_seq), vma); } diff --git a/mm/mmap_lock.c b/mm/mmap_lock.c index 1d23b48552e9..75dc098aea14 100644 --- a/mm/mmap_lock.c +++ b/mm/mmap_lock.c @@ -65,6 +65,9 @@ static inline int __vma_enter_locked(struct vm_area_struc= t *vma, /* * If vma is detached then only vma_mark_attached() can raise the * vm_refcnt. mmap_write_lock prevents racing with vma_mark_attached(). + * + * See the comment describing the vm_area_struct->vm_refcnt field for + * details of possible refcnt values. */ if (!refcount_add_not_zero(VM_REFCNT_EXCLUDE_READERS_FLAG, &vma->vm_refcn= t)) return 0; @@ -137,6 +140,9 @@ void vma_mark_detached(struct vm_area_struct *vma) * before they check vm_lock_seq, realize the vma is locked and drop * back the vm_refcnt. That is a narrow window for observing a raised * vm_refcnt. + * + * See the comment describing the vm_area_struct->vm_refcnt field for + * details of possible refcnt values. */ if (unlikely(!refcount_dec_and_test(&vma->vm_refcnt))) { /* Wait until vma is detached with no readers. */ -- 2.52.0