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 2B2C1C47DDB for ; Mon, 29 Jan 2024 16:17:54 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id A78146B0085; Mon, 29 Jan 2024 11:17:53 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id A4EEB6B0088; Mon, 29 Jan 2024 11:17:53 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 8C84A6B0089; Mon, 29 Jan 2024 11:17:53 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 7C9AD6B0085 for ; Mon, 29 Jan 2024 11:17:53 -0500 (EST) Received: from smtpin30.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 43D5BC097D for ; Mon, 29 Jan 2024 16:17:53 +0000 (UTC) X-FDA: 81732854826.30.A0E8F86 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by imf18.hostedemail.com (Postfix) with ESMTP id BB9DC1C0024 for ; Mon, 29 Jan 2024 16:17:49 +0000 (UTC) Authentication-Results: imf18.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2023-11-20 header.b=KDSp+Jdc; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=HnBzcxa7; spf=pass (imf18.hostedemail.com: domain of liam.howlett@oracle.com designates 205.220.165.32 as permitted sender) smtp.mailfrom=liam.howlett@oracle.com; dmarc=pass (policy=none) header.from=oracle.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=1706545069; 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=jZQ7O2LZkUDesC8DUiedRz+IgexqKX2v+bhjcBClFFg=; b=TVxahPbletnCgq8m+9OH/oXTEMmywjy5HIBAE2L29vnacwk4r2gbDfowvIubuitRS+n2qn JZN8NkqLuAzg42QcJRX2h3Ietbz6u1uxoxhp38LNiA+NkxjnQ9VVzWjRYaLpZq9ahIuFTV gaHLFkYQFSXwNh79E1TxVAXoWSYQOpw= ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1706545069; a=rsa-sha256; cv=pass; b=xEhgWHhy+2s8TOFy/701pJBYpmGy/x7i/Mgds981dOtleP/MbONA7Z7vVleXCGg/BhJFfe 3MF/RZv/KfN7gYz/W4v/v6FEh1SWCosyjd/uuRNKcOAiYPiFKvePAyT/+U9b3FozTjF+Vo YJ9L5RvZcQv/IA6B+acpaydH3wWmTVk= ARC-Authentication-Results: i=2; imf18.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2023-11-20 header.b=KDSp+Jdc; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=HnBzcxa7; spf=pass (imf18.hostedemail.com: domain of liam.howlett@oracle.com designates 205.220.165.32 as permitted sender) smtp.mailfrom=liam.howlett@oracle.com; dmarc=pass (policy=none) header.from=oracle.com; arc=pass ("microsoft.com:s=arcselector9901:i=1") Received: from pps.filterd (m0333521.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 40TG5p44021910; Mon, 29 Jan 2024 16:17:40 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=date : from : to : cc : subject : message-id : references : content-type : in-reply-to : mime-version; s=corp-2023-11-20; bh=jZQ7O2LZkUDesC8DUiedRz+IgexqKX2v+bhjcBClFFg=; b=KDSp+JdcSi34W4Ehnxn9zQfRVIjIdk7FfZPHigUpeGZsngr0+kozQHMXfaYIYHsJFWfE nhHdXJOGNI9GEKHTtNXNn08sue+8aVHd3TUrsWNv2RmJNniC5anGi+ujJCkNMD+NFy6X Cu3kZMVIiuV+HH8H6FTYsdsBSELM2MDvhGlMLlCpBXzJVSRih5KqgOwDoOaWYSpcau/q 6LEVRe/uWzAx4Wgrdtxzlu4CaJXNXaPlhumoX/LUcU1ZqS8D5a/5YntiAD1SwYQewK6Y 74SwUhgGUfHnagNqDWouGhi6MQ7IfbqoIwLWJt55YiclALHApAT1RvFUivDzsNrTYWEe Lw== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3vvrrccc8f-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 29 Jan 2024 16:17:39 +0000 Received: from pps.filterd (phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 40TF0KxW014604; Mon, 29 Jan 2024 16:17:39 GMT Received: from nam11-co1-obe.outbound.protection.outlook.com (mail-co1nam11lp2169.outbound.protection.outlook.com [104.47.56.169]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3vvr95ujn2-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 29 Jan 2024 16:17:39 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ki++m0gRELe3DNmgBQNHxF3aWz6l2sfR+29t+lIc4fUdeTpl9robR+wLHF/t4MUy+Wn34zK9RaMbvqyB5/HVRE22I973KmtsiFjp+MY/+ADokNe+GBDLSxfjgjsSgRdhDCi5yM5JK+TVs/6QpYHqjSVqYt1JezOINh4qek9AnyTH7IvEXIltQgMQkaf10580txyYSq1XVXyLkf3EdKv0/V+RmBdH9SuDcBPBiwxMyzeF4WpG1tP/nn5PNzgkbo958Yiw8xy0//86yBziHxMdAT1P2HGggyCEAkClGuigeVOHICZUFdWoP/MORdd9OqbQQWO7ZGeuKGdBmrwZKb1odA== 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=jZQ7O2LZkUDesC8DUiedRz+IgexqKX2v+bhjcBClFFg=; b=MsYmGml6ZX4KV2NFW5SOvVJ0Vv6+he8qrgR0MU2QSbLoqkOB78g3IW0bxhUBjahiXFvlvhmeKiOraf1htRE1xdqBUTcX+nd4XHqB+22OH+WPTmTbXsOQJ8wwclbibts2NsQnUXz/PsmZ4WrZBtO7a1CqA4FWfT2cDUU/6eD7w3rQLB4rJBnhzq2BEw9lSanmZtiIDTpWzT2rhvBeVe4tHZ9+9Rigqi6XKakBHiVA34RYzEjsnQQTs7QqrSCo21x4Q+nLbfPtubtZYews+lubclfAVqI3SLHMFlV7qX8g6IbU0iYr/v3WJKovrsLR6M81dgMJyXYbdRmU3u/R/7Zagg== 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=jZQ7O2LZkUDesC8DUiedRz+IgexqKX2v+bhjcBClFFg=; b=HnBzcxa7g7QN0ROFbcr+ejILPOorFwomFrFQxrTONg4JM8omHWyQDK1i/XZyAgqlBR2xx9NHTlET0Sk2b4qKOQVXU6ARrdDSruyN8TLNUh4Gm2VkOxHuVmG81deHTKF2/1JIUhZXfiagm43SqQ/ATG4/x5gfiBN0V702gDGtDzY= Received: from DS0PR10MB7933.namprd10.prod.outlook.com (2603:10b6:8:1b8::15) by SJ0PR10MB5662.namprd10.prod.outlook.com (2603:10b6:a03:3dd::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7228.32; Mon, 29 Jan 2024 16:17:36 +0000 Received: from DS0PR10MB7933.namprd10.prod.outlook.com ([fe80::20c8:7efa:f9a8:7606]) by DS0PR10MB7933.namprd10.prod.outlook.com ([fe80::20c8:7efa:f9a8:7606%4]) with mapi id 15.20.7228.029; Mon, 29 Jan 2024 16:17:36 +0000 Date: Mon, 29 Jan 2024 11:17:35 -0500 From: "Liam R. Howlett" To: Miaohe Lin Cc: Muchun Song , Thorvald Natvig , Linux-MM Subject: Re: hugetlbfs: WARNING: bad unlock balance detected during MADV_REMOVE Message-ID: <20240129161735.6gmjsswx62o4pbja@revolver> Mail-Followup-To: "Liam R. Howlett" , Miaohe Lin , Muchun Song , Thorvald Natvig , Linux-MM References: <42788ABD-99AE-4AEF-B543-C0FABAFA0464@linux.dev> <4780b0e3-42e1-9099-d010-5a1793b6cbd3@huawei.com> <531195fb-b642-2bc1-3a07-4944ee5d8664@huawei.com> Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <531195fb-b642-2bc1-3a07-4944ee5d8664@huawei.com> User-Agent: NeoMutt/20220429 X-ClientProxiedBy: YT4P288CA0015.CANP288.PROD.OUTLOOK.COM (2603:10b6:b01:d4::15) To DS0PR10MB7933.namprd10.prod.outlook.com (2603:10b6:8:1b8::15) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS0PR10MB7933:EE_|SJ0PR10MB5662:EE_ X-MS-Office365-Filtering-Correlation-Id: 08b945c4-a212-4603-120a-08dc20e5ce73 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: DAymJitIXv5t/0HHAszM6VPnPaghmwoimhUQp0TLHILRozqiq1plQJxAIxlOskvWP35kTddClFTRVjrMr4LAFkdmk3LJERmyzZJGuU5wy1tZewNCyEudE3cNBv5/VW5NU/yuAjXyEdNQhmCA/ZClf8a6qyQllsdoM16kANV0os9iux/NOiR+E4P64jRuSeiyb4sMXqWT/9DlKscisEf+z805CMMH6AtA5iwTPbCUTsKXwxGzCHd/YAXJV1M2CcTf6bpBYLv0biE1fjN2c+Z+CD480ekxp9a4PWp/UKU1y/NvY7lsPZ7BGau/ePO6ADae/oKt6Yl/r2eR+Mco7HioJQWhu9sXpvquagKeai+1+hCDeRQk8RDrL7tJUYP8Qrd3TIapnx/0IFKpJKSol9i40L/lHPhBiqIa5+AAF/yfVM72BV11K/BELYvTgrogMCMlMBoGEE0grWReXo/LzfYmawL4/SvSh1QU1KQKrbUihRSZbx/ni1cfQpcViHjbzCEqtcm2tBxlOznieE618Bt763MbyGp11UcZQDfWIXADTQsqdZJNehwfm52Dx2If/k1ykLKAMUTlEklO6Tna0D7q96Y125Su93n3k60B1h0EZEXIv/F+5TafYgHm33vHSoXF X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS0PR10MB7933.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(7916004)(366004)(346002)(396003)(39860400002)(136003)(376002)(230273577357003)(230173577357003)(230922051799003)(1800799012)(451199024)(186009)(64100799003)(1076003)(2906002)(6512007)(6506007)(5660300002)(9686003)(53546011)(4326008)(26005)(8936002)(66556008)(8676002)(316002)(66946007)(966005)(66476007)(54906003)(6916009)(38100700002)(83380400001)(6486002)(41300700001)(478600001)(86362001)(33716001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?13o8Rq9+j4Doe+BIQcyEesMBrV7Oy8lv3rgdoJ9YgR7qwdAfJ0rm8c2yfQ+M?= =?us-ascii?Q?NG/xJ/OTVilwmNaz+I6moPvgm8ixeHUzLC7ybgo8xUU2AO/rW6FzUBYBNZpv?= =?us-ascii?Q?+y+eUVesahdNUo7BtntLSOXM6eWZDet3x4CjBfrIOfblwHQCwwJ29Vd+nFeA?= =?us-ascii?Q?gisGZy/9Trp4DYmJl4vFPmzH7VHfdKIe8K0rnaQ73ZtAUhUuPjp4gPwvuK8o?= =?us-ascii?Q?ltuxPoZIYuhgEZJj02z64oi71PhLKVPAW25OiJvqACgBb+IcCbQhfyDK+Kj2?= =?us-ascii?Q?cp7dhnTj1ojMdjCeOmshp4SGs7lWUFSD4RGNTZ5UH39lVelLYnk6GtBWw3Lk?= =?us-ascii?Q?WX5i+YKKHyVda+X9y0vu5hWfVD9CLxBg9XkRABWfni2yz63ALuSK3ib4XKQy?= =?us-ascii?Q?J+SGWEPwidLz4OSbi5dT+T3FsJWhM+bwfaW2Do88DiKBs5TBD1dC5RGxqNE9?= =?us-ascii?Q?G/GMFpSh5K0xUCbN6VAcy+gfmaPiZ1VXGcYwGzrDTrZ1vEcj4BKCKgsYIRmF?= =?us-ascii?Q?0iGdvG8QNI9W3MbdjJB4FTjhfaEzqiNu4yBIlYuSHxlgrEld3e3qDxodIWoz?= =?us-ascii?Q?3QChSvv9fzhwWccFJcj+EazujTU4yhCs9ytQ4WyDHVqDBSjzQsmTGyqwcDFl?= =?us-ascii?Q?DPJJ7JjLVVb5CEc0ITjcTctFz8NJu+CR0oW/wgVNZeldGuLz54s5dkuDMFiB?= =?us-ascii?Q?X+LRvzeITde/QUcDaUS0zdGuTk5b+KWwkF5bfNKAI0pZ0RnYmlgFVwKAJEGa?= =?us-ascii?Q?owlR1KoFGmGxQIuUGcRsp81ojY+TJptv0pJA9wfhrI/jKIV9aGqvyxUtsLzj?= =?us-ascii?Q?h+WzvNgV6LAViz2skoAHrqdjIPwktgsw4YKozh33P3HJStpvHVhbpwvMO2jh?= =?us-ascii?Q?DpRqschRZ2qK+am4BeVaxxbytHxaSUOZ6Fb5xGpqaZKq2F5iaIhqp/H1cY7g?= =?us-ascii?Q?+dwltfsdXrUqpuuZrLS8zNfNb0f27sxhtXRWK8OMpc0Z9nMqdGBBC8DC3F1x?= =?us-ascii?Q?0YIqBj/7tr5GtqFKb4qw3K6EMXg/FgYXtnMbjmy3dCwwPJhKBuFw2pww274z?= =?us-ascii?Q?HRo0FnuA4r+KpVntNpIDr78iMQo28ZeKss4T8Nvd8g+E+qHcQ5IZh2Lh3G+P?= =?us-ascii?Q?fIME00y1u30wz5We7oMOf3ExeEKDCP0nToP3QMwkz3hwsGfm97yy4CZ4HfIy?= =?us-ascii?Q?lMIbWJFsNTe4bgcn8nXo0YebuHEmwEwa/t4YWbaAgkUBvN0kCWQ/sb4eBz+b?= =?us-ascii?Q?17UKVFqHDXFXisW1yLEbV7l1FiGE4IqrFFFkvxyl9MBTdtR3QJ0KzAW22gDt?= =?us-ascii?Q?WzXfIh/G38ncmDX6KTiJkE505DhBLqBLQQ4I3J+0EvoKZ28amUDKH9SesHxK?= =?us-ascii?Q?YjFlJ/JUB4H9jFwPsaDLQnUTH1A8+b3eJg/8dpnvU6K7fa5Zx7QsqSLBXcjK?= =?us-ascii?Q?xhgR5n7nUYAF81zrwaACqkUpbB5U3Ao1Xvkn0XzsyZDXFxa0PZ+HSitbBa7S?= =?us-ascii?Q?hDGDT1rW7d/+uUI5UXokCU1PJeJsIdKbUwQCI9BUAgC7vZDHdHLUKhwR7QNF?= =?us-ascii?Q?t8j1j1z1vOkOpxid08eJN9aE4jikuV7NCvPXtEXi?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: GtWryYJLoXPADkO+yQ39GoeIFpOz/1O5g4qskMV0F0MWT+fxaPjoz4rSUVlPdjyFRHTb0czlOMRaK7AvuYmXZOvhqLkGFUuud60kNFpAR0NUd+xhSlTsR6hMd7nZOhspspHMN4wtbzxgik3trqIVE++yEoWDnRF9LEWnsZnWq60zYSlNO373tfYGmRO+mu7/78ik6XASUlytGMMt+toF3uM2oZYr0tSzrw4e/sgTsV92q7vjm3K0qrmVCavJ84/o/qfGKX2NLs/nzTd0M7ydjBoPxceiFFiUw5dvW9J/KW/0hLcgsiA6f7wSbHctqBobfHeP5FPfjgHuyI6hmGd/6V/Mk4a/+2AeZqf3z6P57z2PLJDnRBE3+W0kyygX6d5DwgtC20Y97vUd6jpeFSFlgusCsqDNdfhRLFW3IWE1ZRnczqjok7gW/G7mqgL6RcW8i23jXxiLAkVmwWHQQPi9T54Xp/Z/t8ya627wv9kD5kp+N3vu7EcFEkhsL+YcrodLpqhVqFa3wzMKikVnW3sqyluVjB/FXt7rQGtGGhc3f+tcL9+QutWrjUAklsJgD0xYBonQzq12XK9iyJl2MPMDcyBI7Zm9+w0p8XGRLqkMqNQ= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 08b945c4-a212-4603-120a-08dc20e5ce73 X-MS-Exchange-CrossTenant-AuthSource: DS0PR10MB7933.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Jan 2024 16:17:36.4425 (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: /9yCLZgbwJx9PMYZM3civ6blHdLXh1XrYW0rHNe/O/V5iz8YnKGsRC5RmoHzkHiT0cY+P3lVNlGxltaQjWKb2Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR10MB5662 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.272,Aquarius:18.0.1011,Hydra:6.0.619,FMLib:17.11.176.26 definitions=2024-01-29_10,2024-01-29_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 bulkscore=0 malwarescore=0 suspectscore=0 phishscore=0 mlxscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2311290000 definitions=main-2401290119 X-Proofpoint-ORIG-GUID: TO4h5rotZ1gL6sW0OkFV9JzSFuy2QKDi X-Proofpoint-GUID: TO4h5rotZ1gL6sW0OkFV9JzSFuy2QKDi X-Rspamd-Queue-Id: BB9DC1C0024 X-Rspam-User: X-Stat-Signature: diex43dpsxrbu993o69ajukd7wo15iwf X-Rspamd-Server: rspam03 X-HE-Tag: 1706545069-607339 X-HE-Meta: U2FsdGVkX19sn/Yd7LEVdsfnDrmIoDJHX984PDslhrVBJJbV08XKNAayhF7gLhfoqDpGvPTjJU4Lplbas3jlqG0wrmM0qlTGTeiwYU8F+y2onGSpGtUZRIbNz2eawZ/zUFEdF60rZZpbTZ7b4VfPxx/48vmmAtLRakMAqIZLxpHoaYJ5NTL3HI5BqN33YNDsP8mlePYzMY3br6qH1SYDhBonvpI8S06LAfdreU1Rltx4YT8TDWjcNZKDa9UdDaORr0QG6NKFhpQck7RqFsxUxI+CFiUXhWlIK40en1wIGwldBC1NapAxScIM8voAbvgCp40OmkHAZBqzeiwis6DxQP8jIcbG94Dy+AT8xurEVQ+b0W6tqqfgqAPneQ1g4bIlT2z0OhDSShl9U3MZLeG9LJGBP3lKoDoxSglbvvyxFaILC6vyHcjVFcCu5YGO9veWCFjlxw4BlDJ8wo5WqBIqe6QuPHrdrNFIxwmBJ8h622pSH9EKtWoV4sjzjW9uJp/9Tn7p2WDv7KPM3/26QQPV3Bl8+oLsBkV+uLW/EBHr1kkfWVoXMqI2Peu+RTM3P3bSaxa+AACw86AE6Hd/AuO2i/xRbjMC9YFViYhIfSYwm4qHdjJk1H5jA1uxFL4Hc3C5FnVq91wahpoYAYw1gT6wOlckTgpqYnBkv8cz4r4DtqYUt+plIIXV/TL26KuCwi9pFm+eKNYs5S/9O/a+PKqcfNg1zjVXjSFx7+KS1IUUjwzbXrNxcsCR+QipfMUBuLaVWfgTVoFU5mPSzRqUJVX+qw1IGTufUx20XUgRMo7ZCEJV5+XT8nffPDvM/pCukT9ZrBqX5nEVaXoA3+/yiUNz0pzlF6eAyiAPtQZd3vVv7lDo+coU07jN7lgbdQ7nSuvYKYQoxu9vOofWeXKiJYXxKr9QfdKkkpIZXAFIcAc4Scc6FpeO1q7m/L9QDgUoXytY4T3xCuHxHUK9CEWz10s 23ywk8J+ wJ4xDSz/eA0Uy8ooMgpGW2vG9YQC3J6vXFXsx4q+APhWSHqOIm1ZzYFmNkxC+dCAcQqVavs/VT2KlaFGHVL0epJopC1MYYYkKAMvKyAsGwRmhyFjdQiA+oJpQzVmz+Qbp6MykaHRtMFpttKt7Ccmn/8+y7RifoWuS5bhSELflBhkjzeSEuhAQSoFJyP9dWheVqrTNw+n/7np3ukwxhdgjuO/jybxeviLvu7i/IyBEkYEoareElaocxOLCkgaZvQIuxX8RPZM89/UsjZtUr3XbZSHniFCCKRTYq2Dytpjn8FCkV6kYrLe50gDyOK7g6Nkgv47XFanjLs93CgW2Delb/OKQuWCApuQM5vj3lxsZ0qPy/Qn9izrr8Y9/iRhVFFnl4cNcLqB9EZWnJrd4ESfC15tYem36qJEZMQ3oK9+B2yMOFNUBumLK/SArQMN/JM1RSbP8x7SiaD6Lvg/dQVAaTF6lpR4Ea7F1IN3Ja6H+t7hCp5cB0Siz0RQJGFsvwVzBQ4v93zev1BJBVEVE6GB1d5diETeoswBzk2VMZPcAQahPeo8xXrjVcM3GcbnPn8dYUF/F 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: * Miaohe Lin [240129 07:56]: > On 2024/1/27 18:13, Miaohe Lin wrote: > > On 2024/1/26 15:50, Muchun Song wrote: > >> > >> > >>> On Jan 26, 2024, at 04:28, Thorvald Natvig wrote: > >>> > >>> We've found what appears to be a lock issue that results in a blocked > >>> process somewhere in hugetlbfs for shared maps; seemingly from an > >>> interaction between hugetlb_vm_op_open and hugetlb_vmdelete_list. > >>> > >>> Based on some added pr_warn, we believe the following is happening: > >>> When hugetlb_vmdelete_list is entered from the child process, > >>> vma->vm_private_data is NULL, and hence hugetlb_vma_trylock_write does > >>> not lock, since neither __vma_shareable_lock nor __vma_private_lock > >>> are true. > >>> > >>> While hugetlb_vmdelete_list is executing, the parent process does > >>> fork(), which ends up in hugetlb_vm_op_open, which in turn allocates a > >>> lock for the same vma. > >>> > >>> Thus, when the hugetlb_vmdelete_list in the child reaches the end of > >>> the function, vma->vm_private_data is now populated, and hence > >>> hugetlb_vma_unlock_write tries to unlock the vma_lock, which it does > >>> not hold. > >> > >> Thanks for your report. ->vm_private_data was introduced since the > >> series [1]. So I suspect it was caused by this. But I haven't reviewed > >> that at that time (actually, it is a little complex in pmd sharing > >> case). I saw Miaohe had reviewed many of those. > >> > >> CC Miaohe, maybe he has some ideas on this. > >> > >> [1] https://lore.kernel.org/all/20220914221810.95771-7-mike.kravetz@oracle.com/T/#m2141e4bc30401a8ce490b1965b9bad74e7f791ff > >> > >> Thanks. > >> > >>> > >>> dmesg: > >>> WARNING: bad unlock balance detected! > >>> 6.8.0-rc1+ #24 Not tainted > >>> ------------------------------------- > >>> lock/2613 is trying to release lock (&vma_lock->rw_sema) at: > >>> [] hugetlb_vma_unlock_write+0x48/0x60 > >>> but there are no more locks to release! > > > > Thanks for your report. It seems there's a race: > > > > CPU 1 CPU 2 > > fork hugetlbfs_fallocate > > dup_mmap hugetlbfs_punch_hole > > i_mmap_lock_write(mapping); > > vma_interval_tree_insert_after -- Child vma is visible through i_mmap tree. > > i_mmap_unlock_write(mapping); > > hugetlb_dup_vma_private -- Clear vma_lock outside i_mmap_rwsem! i_mmap_lock_write(mapping); > > hugetlb_vmdelete_list > > vma_interval_tree_foreach > > hugetlb_vma_trylock_write -- Vma_lock is cleared. > > tmp->vm_ops->open -- Alloc new vma_lock outside i_mmap_rwsem! > > hugetlb_vma_unlock_write -- Vma_lock is assigned!!! > > i_mmap_unlock_write(mapping); > > > > hugetlb_dup_vma_private and hugetlb_vm_op_open are called outside i_mmap_rwsem lock. So there will be another bugs behind it. > > But I'm not really sure. I will take a more closed look at next week. > > > This can be fixed by deferring vma_interval_tree_insert_after() until vma is fully initialized. > But I'm not sure whether there're side effects with this patch. > > linux-UJMmTI:/home/linmiaohe/mm # git diff > diff --git a/kernel/fork.c b/kernel/fork.c > index 47ff3b35352e..2ef2711452e0 100644 > --- a/kernel/fork.c > +++ b/kernel/fork.c > @@ -712,21 +712,6 @@ static __latent_entropy int dup_mmap(struct mm_struct *mm, > } else if (anon_vma_fork(tmp, mpnt)) > goto fail_nomem_anon_vma_fork; > vm_flags_clear(tmp, VM_LOCKED_MASK); > - file = tmp->vm_file; > - if (file) { > - struct address_space *mapping = file->f_mapping; > - > - get_file(file); > - i_mmap_lock_write(mapping); > - if (vma_is_shared_maywrite(tmp)) > - mapping_allow_writable(mapping); > - flush_dcache_mmap_lock(mapping); > - /* insert tmp into the share list, just after mpnt */ > - vma_interval_tree_insert_after(tmp, mpnt, > - &mapping->i_mmap); > - flush_dcache_mmap_unlock(mapping); > - i_mmap_unlock_write(mapping); > - } > > /* > * Copy/update hugetlb private vma information. > @@ -747,6 +732,22 @@ static __latent_entropy int dup_mmap(struct mm_struct *mm, > if (tmp->vm_ops && tmp->vm_ops->open) > tmp->vm_ops->open(tmp); > > + file = tmp->vm_file; > + if (file) { > + struct address_space *mapping = file->f_mapping; > + > + get_file(file); > + i_mmap_lock_write(mapping); > + if (vma_is_shared_maywrite(tmp)) > + mapping_allow_writable(mapping); > + flush_dcache_mmap_lock(mapping); > + /* insert tmp into the share list, just after mpnt. */ > + vma_interval_tree_insert_after(tmp, mpnt, > + &mapping->i_mmap); > + flush_dcache_mmap_unlock(mapping); > + i_mmap_unlock_write(mapping); > + } > + > if (retval) { > mpnt = vma_next(&vmi); > goto loop_out; > > How is this possible? I thought, as specified in mm/rmap.c, that the hugetlbfs path would be holding the mmap lock (which is also held in the fork path)? That is, the mmap_lock must be held before the i_mmap_lock_write() Am I missing something? Do we need an update to mm/rmap.c? Thanks, Liam