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 551BAC021B8 for ; Wed, 26 Feb 2025 15:00:09 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 7F5DD6B008A; Wed, 26 Feb 2025 10:00:08 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 7A6346B008C; Wed, 26 Feb 2025 10:00:08 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 5AAC86B0093; Wed, 26 Feb 2025 10:00:08 -0500 (EST) 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 3399A6B008A for ; Wed, 26 Feb 2025 10:00:08 -0500 (EST) Received: from smtpin15.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 6CBB41CB779 for ; Wed, 26 Feb 2025 14:59:46 +0000 (UTC) X-FDA: 83162405172.15.8675426 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by imf30.hostedemail.com (Postfix) with ESMTP id D5C148001C for ; Wed, 26 Feb 2025 14:59:42 +0000 (UTC) Authentication-Results: imf30.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2023-11-20 header.b=N2PVRqqm; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=ytX30v4L; arc=pass ("microsoft.com:s=arcselector10001:i=1"); spf=pass (imf30.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=reject) header.from=oracle.com ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1740581983; 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=7BqpkE/CAArBL25QcA3fPR5uLD7c1PPt4R5eIO3pXOc=; b=1DENKE4KHEh0IwbzMj9g7lzP9FKkCpgaK04TkEzuIaePPC0ZulaHxoIQX8y2cdGVuqoCyp jkM2C0yRwtoWZFPvQxlB9tKJtN5OqrYF0NW0kurMJziqMPUQWoCv/tcDVyYIPDL2UtsOtv gVe/k0bxLfG4J9I0iNGtqQnJoQBLmTY= ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1740581983; a=rsa-sha256; cv=pass; b=q79NVhl62DoAMCmpFibPmz3gnFrcR/YlR3CCP+XUICQ+Ykol5bVkqvBeQxKqAx3iXhugEC Bq3SI+Zs9rdXIEzcCG3q1t2aonrGqOBJqO5QekiEdTR3hJy8gbXOLm5ytv/Sp3SC7KGlbf R8mcmBARNnNIfCPmzKsTQe5h0xOBVQo= ARC-Authentication-Results: i=2; imf30.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2023-11-20 header.b=N2PVRqqm; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=ytX30v4L; arc=pass ("microsoft.com:s=arcselector10001:i=1"); spf=pass (imf30.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=reject) header.from=oracle.com Received: from pps.filterd (m0333521.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 51QEtajQ002635; Wed, 26 Feb 2025 14:59:33 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-2023-11-20; bh=7BqpkE/CAArBL25QcA 3fPR5uLD7c1PPt4R5eIO3pXOc=; b=N2PVRqqm6OaXWQUhBmNmkNmS+f72/lDsly x9YdATNtK0YJ61KJ+tL8a6uGD8DEwuRVIVibOYXFECwrh7Glk14RibKRjNNOlA1v 6h0owdKHuv8oCJYpfza1V4Eld1kyqyrrU9cqNn0OJ3AX3PbsE7lYUXSXJILvH76P JfdXkXvGJLZyMvTNZ5ue8Og8TZchrjLz8sjIm0uTtfX+2/YYg+/SrKlMa10YAwMW Y+h28gUEE9x8fk0Di2+zGCbbt/viPQp5gIYvBpJSoNdU/4mFs4PZ+9vdUdgnjhLw 9MZqaRTseBrfBnBumUXfuvuesmjCzP5rQuNKTk4gb12vlvLHmCow== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 451psfs9dd-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 26 Feb 2025 14:59:33 +0000 (GMT) Received: from pps.filterd (phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 51QDJkmR002886; Wed, 26 Feb 2025 14:59:33 GMT Received: from nam02-bn1-obe.outbound.protection.outlook.com (mail-bn1nam02lp2045.outbound.protection.outlook.com [104.47.51.45]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 44y51b0qb6-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 26 Feb 2025 14:59:32 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=hZQmvHsD7i0XDK6Sr099ggP6JXvltYO6V2ewQ4rxjVgy2wTSy98R2Ol8BRcMOJrVzUz3QvbVggHeDwHmB0QYZBh+MnprdUptk/ZBVNEG9voUihdskYuNwwEhg67b7ffpWLVIjQw3pZIOJGJl48P+Tw6iFNEgcUkLmoxbGfJimZWg5sp+fCpHirbyQa1xHz2xq7vF4UhOqiLCf7ghirmls3ODsZ/svFFMoHkeJsYcIwqzlSi7GzTE/1eikUKZHc/3+ACblCT55Hyqa6d0ITa1XOQ4eff4ODotaV/ccYP0NGRp4swkQTLBUI+X9Tfnd/x8Uu52+OHGSBrhMew/e+AqCA== 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=7BqpkE/CAArBL25QcA3fPR5uLD7c1PPt4R5eIO3pXOc=; b=R7TguI9GU+goiGJPWBgHK+w/EiSAMSzjYIOnapznQgGyIk8BuiG5Otr86z9zcPY5EOm9vpDZsvAGNDd3g3cPvZw1SGyNWduuNQxdt6oZ979t9LG+o3GvY68puYb8g5A2zGPbjcgYSxOg/nNyBrVnzS8S3fqwGAqgInx4AjyZeWMTYAf8DxrHEbcwUpdiYo8OqJQLB1/68sQGg6rz9e861EKzfDIEyzI3H+Ntn5aEzygUD6IKpCMIRpgVFAxjwGQfFo0IIJvgWUUeAl6M0n8KAblUv5TTdL9FrP/iXhkJQyrHD5/EjwwFPXvtFEVfIpKuOkzpsmklTLErOdcGYL/w9w== 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=7BqpkE/CAArBL25QcA3fPR5uLD7c1PPt4R5eIO3pXOc=; b=ytX30v4Ll4SPH6FjzcO2IqbFDeSvyWtJLkvmaZbqr8fOUAnVQKSKCJIG+Oo6rz6sw7rxPOvzy8sBiUHVjWEQF/P2l7VtYifmqAolOPtRwUcdBm87kiQbm5HT8GM2BqKNhoOU/cBc7irUNuERz6AX2VCi9HoNEstev5YZc0CnNUE= Received: from PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) by CH4PR10MB8025.namprd10.prod.outlook.com (2603:10b6:610:247::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8466.20; Wed, 26 Feb 2025 14:59:30 +0000 Received: from PH0PR10MB5777.namprd10.prod.outlook.com ([fe80::75a8:21cc:f343:f68c]) by PH0PR10MB5777.namprd10.prod.outlook.com ([fe80::75a8:21cc:f343:f68c%4]) with mapi id 15.20.8466.016; Wed, 26 Feb 2025 14:59:29 +0000 Date: Wed, 26 Feb 2025 09:59:26 -0500 From: "Liam R. Howlett" To: Suren Baghdasaryan Cc: akpm@linux-foundation.org, lokeshgidra@google.com, aarcange@redhat.com, 21cnbao@gmail.com, v-songbaohua@oppo.com, david@redhat.com, peterx@redhat.com, willy@infradead.org, lorenzo.stoakes@oracle.com, hughd@google.com, jannh@google.com, kaleshsingh@google.com, linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH 1/1] userfaultfd: do not block on locking a large folio with raised refcount Message-ID: Mail-Followup-To: "Liam R. Howlett" , Suren Baghdasaryan , akpm@linux-foundation.org, lokeshgidra@google.com, aarcange@redhat.com, 21cnbao@gmail.com, v-songbaohua@oppo.com, david@redhat.com, peterx@redhat.com, willy@infradead.org, lorenzo.stoakes@oracle.com, hughd@google.com, jannh@google.com, kaleshsingh@google.com, linux-mm@kvack.org, linux-kernel@vger.kernel.org References: <20250225204613.2316092-1-surenb@google.com> Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20250225204613.2316092-1-surenb@google.com> User-Agent: NeoMutt/20240425 X-ClientProxiedBy: YT4PR01CA0198.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:ad::22) To PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PH0PR10MB5777:EE_|CH4PR10MB8025:EE_ X-MS-Office365-Filtering-Correlation-Id: 1f1b9683-8ec4-473f-33bb-08dd56762bab X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|1800799024|366016|7053199007; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?2p9RGtCjDtPf3LpEcQiGKFamoAQ2yOPPqORp7itMW4LCpm1+6imYcZZzXXDi?= =?us-ascii?Q?G47f1k7H68LL8CrP2rITsL/+T87M/4dC5+eM8udupat1qXEkH7UKWiKK5+JX?= =?us-ascii?Q?bxSDjia5H1cCQxziYkY9CtFZJJytl/W2+0ylxuf324EFIMXJ9ZYVkm39LiMe?= =?us-ascii?Q?NDHC7y93xC723WwdOVEpxcDyElrW0NgVAq1Osy41vivghlXoNZiUR/dz+kCP?= =?us-ascii?Q?ZdP5+vlDS8EK9aNATppuBuauF8tKh/Qu8PKwcwZf9nkWijoZCjnyUhHIYRU4?= =?us-ascii?Q?XSWAQ5bhU2SxWUkf4hKS/LrFZbbI58s9dNwnKoJ1V7D9t8Z1ymjSeL1NY9Sl?= =?us-ascii?Q?PtFtb38nmsC144eLeJdUWbYJUMDE9t/7fb1lHUz8qM7Q+IfY7DmXYLMHE0J7?= =?us-ascii?Q?I0InRQokDJDnB3FLaig0X0Ue84wa44c2O0gesj4HDy0jgLfR+W6PN/iLurWC?= =?us-ascii?Q?+lFoJ1XBmNDVzxG1NENS48GdxS2iMpeoFfYEET9Q2Y7yB7ZTbxEOSAtpW/+K?= =?us-ascii?Q?YVu0XP/8iJHLksimGgyqrng+glovyCgzNRu1vsEmR2ne3fcSnq6I0r9jkgjT?= =?us-ascii?Q?UTLNZURL2wEJcT6SPSyBb+kcy4PIYl8f6xbe8pbc0XLxuCGccC7G6Ofi/Ynd?= =?us-ascii?Q?nHLa1TrnPpj9UiGNIKi0JOZzrRWIz2BOAGp7dbWgSlsvFG4Mzs25YM6+IvV5?= =?us-ascii?Q?PutlUxs71aJfh6YbZugM9yeh86ax3xLn/jZAYcEbF2LJi/UJDh3tT2KK5/iv?= =?us-ascii?Q?+F2/cFsGbuaJs64BM3pTsvjh39ikVe3D26YwuMtr1yFkcRtkFI6ygAvgiBhm?= =?us-ascii?Q?4oHMI13uYT6VQBw+iO+yBuO41SX1jGe8Jpz1uHtsj1IsndgWUcvS+7VvMvlu?= =?us-ascii?Q?XSbm5/rW/fXUywUsbmT0TgQyyVYqo7XxHZXeCkMMMD0qUduShrtI0jL7WBYK?= =?us-ascii?Q?mOlphDlWvHqy0dO5fntaJ1c6flZWzE3ct8R/qT5dT1UZ7wByMlaH7evBgW94?= =?us-ascii?Q?DUUz7z+GZ10yDRZDfjrGD2f1gv3S8OHB6HMLwumbkREct108/0tGpDsKEk/j?= =?us-ascii?Q?RMxkfk4qvRpf+awb106XLwjMX7XI0U/i749TBUYV8QoGF15DI2XRnmuUBiRq?= =?us-ascii?Q?IOyWXF7/lPKZg8zybExRLSHFv9vmukykUveXZdfY40vAMCd1dlQ1vHkEwbdw?= =?us-ascii?Q?szTtg9w8a/7Sh3DvK8v0LehoPNjDaGjIPVVuwa5IZFgtodqqy3vr/oDKOFLr?= =?us-ascii?Q?6Odq4poWVFK4mqM/8s5WVvpXrqz8ZTl1FFJo/OSyOWiMvmlGtTgAEvlFaLYN?= =?us-ascii?Q?vHBh3gvLoHieIeTT159/bhKb34Fs0Z8+qZN+wDJxsl9MLXGo3nSf1yR5MDmo?= =?us-ascii?Q?cN6cIxy5WqpEmC+fX24wmwQE1LrS?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH0PR10MB5777.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(1800799024)(366016)(7053199007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?qpBwYobKGHs0OmmJH5rF4BD8Yl74VljEYcNEyK+f00+DZB5uyUf/Z+nbgeDX?= =?us-ascii?Q?o+miThl4pPQby9d2OSSRg3Xpl0gLgnTXmh+LBgKAjqhue2WsBmSnOtf3MNHD?= =?us-ascii?Q?WxJ/BNdC7Dtkou3x9Z+ZckR3q9gw6vFs0O603pF1zY+SeGnvI7LnqIHxAc0F?= =?us-ascii?Q?TUJK4S+Yeeh/bvVTOyylGeFx33OiuM3U8THYCpnuJn3jNkDQTKOS/qPieHx3?= =?us-ascii?Q?px89qJ3JOwvqA2ekvGhI1zriurrpTzo6XIitXoUBox2wIRSp8xm+LB5ZXhdU?= =?us-ascii?Q?rs/ydTzaOKwcB0nH4UXJOIniFdFq4qPf2EqtXTGk26eluZX+zDw8FwlOVh7h?= =?us-ascii?Q?j1g13kbDYNuaSDLObC7nz96qwfhiCB1LxqqQTNj0j41U7Xc7HQCHFMqsuspI?= =?us-ascii?Q?fs7R2m/ls70YJbCxv3ls/n4pAk1URkk2KVePnCsiKzvj4B6Ju122CnqZ8MOZ?= =?us-ascii?Q?ULyAqc/4uAaXgQNmGuCcS/eymx7fblmzmCykdXvz2Jfpp7DaY0sZ3cQMCbIa?= =?us-ascii?Q?TkA3pQXnT6kAXTljuHwuH7Gv2jDq8QCdDz/szXqBmmPLHwZ/wJcQ86t/YgNJ?= =?us-ascii?Q?klnjg94Kha6GdHFAswYvOb2Vu97w4B6xB0g84S38B+/pFKrd7Ld0wlukiX3U?= =?us-ascii?Q?/YonVCmLem86k3Nuha34Vucq11C+AYD0Lgcr3uNq9mIgji5yJHZZzEIqQNfX?= =?us-ascii?Q?h+hQOuygtgdPOxLbc/ymE3METw9g/iekiM/bVSWeyqP3IbCDV0YvWkXMK9/d?= =?us-ascii?Q?aAexIl6RosTAUb8g/rKgr/B2dr5GDoKIHzu29QLgYzABWk5L/3ZTou0pDqx6?= =?us-ascii?Q?+KmCdtSLee267otTUPtoWogZUeRwq61a102chd7oeQjpNlwVP5jSF4U8wD41?= =?us-ascii?Q?pkdfa4/mIB2V9j9+iKcyIXo+ag0JztFX+EEE9hJx10d1NS9wn2vuotx4F5SD?= =?us-ascii?Q?G/G+R+i5D33kULxhzvTlYcCYvFslRrCNL8mdPdGRmBNhAbA3wV8OHAVFApY9?= =?us-ascii?Q?v79K+oeUcSaP/yP5HkaaBt2flwsY4nBlMaNmgVJevIGaIB8FJRQpPz98IfQb?= =?us-ascii?Q?/OOHaLHibJREzHUgVFGwZDfGFCRtRcLMzxmxMV+eBZcscBbqmpJTKVQ8hpaD?= =?us-ascii?Q?cGx9FGvOIZ8XFnoFxtevskLzqhJMV+tDpuMCRmgk/acd0ndAHyunSVCvddWS?= =?us-ascii?Q?X6A17vG2B8EVosvStnNiP6/KQhJsw/AzqDWMTXkF1H6fifp9YHKHzgSirmXP?= =?us-ascii?Q?in//y+bJ91Rox+jEiLA/RNz5xLaW1m0GKBSwRy4be7w4BppgUoceA9oaxDpE?= =?us-ascii?Q?G3lgzLNo2exEOlPoCf3zTTl5O9y/T/x7cpLuyn9eYfaYrcjGRMRCNoW1Ntub?= =?us-ascii?Q?IX98yTmoL9AtvaQF+imL3SiR4NzcyEcUvZ7NxSGuUVDu0TiIp0ybsz/1/FS9?= =?us-ascii?Q?bxtUWvo3lf3UQYKB8TVOaWmTzDYzUWOo1xeve/wSgTfj1vOdvSUSFlCoB8YX?= =?us-ascii?Q?dWOBvxkMnkkadC9QGVCL0Iv1ftn0UmXF8gNWrruksilkxC2mDKVzzyGDWz4c?= =?us-ascii?Q?eKgQf760xHd6TNRAcJRCnoGLa/LncGA3wRmt0SvE?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 12uofEPqsOjlkZ/o/jEq13dfaLPwRh31PnDtQlBWHI6q16Xz3Wka0ttwVUTtXcTACk5AZKMZlCRLDfB3LL9TJvcDdJV8/2daxsHozz2LOeRJI/9o3OeIEUvrME95ESEjZDDxmBiZKHE64MDY4U0oKeB6KBqyzeG+p8sKuViR3OBTeZJgJn5x5rb9BqWIjFofyqut/rLpDo+qkDy5jFW/Z2nQZtg5bolKp0n4Zu1ezlBVtRHLhdLN/SJeMQ3Rt/foATAlMrt1H+BdijxowPwaQUsJO1jp+LMmFKksyoDfNAZoyqg11vuSLgBp06w1eXzuQROBsU5CVtM9/aeuKatodaWJ8oGwYVtvNWSpJCPdhrGzpaqInZgNRsnfoq4MJJNhQeSEqpSEUYgDTAvjX0FPk1UgFpx1eFiZdVmnDyzcM3vrlPhVNlbiTh2dkiAhJKjtJkiP9EoMyG8bEe52eDnytqvN7ZrLc7RIFoNVbnf2m38gEB057kwQJo/l7vngBGhzOoWXBS2bizlnbxXd45jgDrrlH34FJpxEsz1CwaFWQLKJ++83h1Ra2HpX/4i4AnOqhakMstIDgLUf3ByER4wXGOSl7CiFdhWnPUQyCC12bek= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1f1b9683-8ec4-473f-33bb-08dd56762bab X-MS-Exchange-CrossTenant-AuthSource: PH0PR10MB5777.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Feb 2025 14:59:29.7980 (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: UWiuAeSm2/LqwmYTIm176kADtcDgEWMzD1/z2B8qFPOkfrfqJg3PmRJVJfvN2ci6+IfCrleaO2BJqIhSuV/oAw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH4PR10MB8025 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1057,Hydra:6.0.680,FMLib:17.12.68.34 definitions=2025-02-26_04,2025-02-26_01,2024-11-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 malwarescore=0 mlxscore=0 adultscore=0 bulkscore=0 phishscore=0 spamscore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2502100000 definitions=main-2502260119 X-Proofpoint-ORIG-GUID: MhoqB2Usl5sBUlVrAgnVYQfvJ6JwZ0Aa X-Proofpoint-GUID: MhoqB2Usl5sBUlVrAgnVYQfvJ6JwZ0Aa X-Rspam-User: X-Rspamd-Queue-Id: D5C148001C X-Rspamd-Server: rspam07 X-Stat-Signature: y73jfhaihbr4n5bucqcsr7h5zttbffoi X-HE-Tag: 1740581982-654622 X-HE-Meta: U2FsdGVkX1+BTwECKRDMizvp8QFYaikW1UaDph4HuYWK3zfYwZTd6AjUyCDiwb1yN5M6G3kWOuC06dmNxxMSW8Ob+b+HMxNuM58XxDLSJP+QknOy/c0NImccUX/dLEoiBi6fSqt/GisNNPnOKl6bpEcSlQ32KiX7RaSGDn4ZRnkVRU6ya1xKA2/FrZaj/UcB+Q+F04NPvelEfmr8jP7r0JdjY/16ALdgciJA2kHQZKquBTdDa8vQ4LWTnAP2TodzIZsAbLk6yUc+evTp0uyq3H1GREFOlkSVS0kokcxYi85uwFA2MTYmbo9b49gcAoB/6djFTEBJd9uljMOyigq/h9boFZxlXAtHSf4BQTwOWlS3ACxrBdJuWtIPlodoeQv/CzfoPEL6att1yaKNgutITk5Fq8pSTL2GP0CPx2c52iqai6d43glCi1NHBAL4JhCWHDve6bP+SaXic7x7kN9YIz+PuENrHzgdtV1CAbmx6rxSFrOrww4e1hiYG5RKLsU07pzICpiYRwp8I/FokJxKGsQD6JhHV8qdNybZyD81cv7ubVWqrWr6HAsOVGMfs/AiXbrtddykpQ2feN5SHMeYFq2x1srICWteajRVXDbVlhEmyJbDlpUM6qpFfCCfhUVQ+IjMMRz3tkTuCqwCtMQvsFpPyJlR2SKLWNOXGk+BigshysLNaQz1HfRhgQ7DnHON1zBHVBWIOfYfieFpNQkK3TXUVViRwPYc7T1orbT5ZmB7E9qSV/SvHF3L977oVqwS3l8Nhi0O+qw8vmsbiA21KfFNSOfZ3aVHiqW2UbvzM8ThH3qX4DFEHenQe0Ie/gK/Yoz6wOM1jO9uXpvDI8Y+KvpdCIfwYPyMiLiu6S6aSTxc1Zckh8V0vNAzdhL9zOCx11FCLKLjZ1aJS+kxQsmwlFM4GJnjh5qE4cEA2DvdpWXPaxbTAXcQ9Orsy+XRiLEWwVIC5ZdyBiL7Mr09Xg9 OSWSxUbn lyuLsDqx+yUJUEUjX/LZxVjj/RKOYQqxXWXlKOW0XkbeLEL7uX+CAEocuWGQzCanRJYRxtdjbKU//3S7JUG4e41uQV++oHHW56d2eKTKGmn5PoUSfifcDsr0Dbp3A4pxy2xC6BWrlLdqGvgEVwY8QaYdbTAHIDXX006temf1tH+EneB98GIYS5/67CZRNxDUGoS6PPsBFI+W9StlTQt0iL0m6JBPuJUkuYNs/hu6K9vjoXnun9NIqg+m1E1gJFLAzV/i5ayoHX4QSLqLyT5CVpY4O1jVVCkClW4JRpli+fAATk0E9Mri/NfKV4peu7pTBYLfsjj+lFWmRJqCHLtK9NUMsGtSkxKKWVx2fFBRoCgeYzCHq9CHcyxishs6z09pr5DAipmFQbIy0LGefN+hLm416w1lPB/F/dxS0OWgO7mZdVyG/YMsQ2ySpx/10lFjPqWwpqGVmZXR+RHg0WY69gMrMojusAAOLwGrcteWxUFb10I0a0NeIAZR/9SBKjJmSY7aLrlOTW5zQpNHLcaV0dzj1hHEHJ/Rr0w7WBlhCmm/dr6iCBC9Zy5On4eh7Y1DmwcHEqDLsFkfb5cqCZOl2q7PWx+UyqKp9fq8S X-Bogosity: Ham, tests=bogofilter, spamicity=0.000037, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: * Suren Baghdasaryan [250225 15:46]: > Lokesh recently raised an issue about UFFDIO_MOVE getting into a deadlock > state when it goes into split_folio() with raised folio refcount. > split_folio() expects the reference count to be exactly > mapcount + num_pages_in_folio + 1 (see can_split_folio()) and fails with > EAGAIN otherwise. If multiple processes are trying to move the same > large folio, they raise the refcount (all tasks succeed in that) then > one of them succeeds in locking the folio, while others will block in > folio_lock() while keeping the refcount raised. The winner of this > race will proceed with calling split_folio() and will fail returning > EAGAIN to the caller and unlocking the folio. The next competing process > will get the folio locked and will go through the same flow. In the > meantime the original winner will be retried and will block in > folio_lock(), getting into the queue of waiting processes only to repeat > the same path. All this results in a livelock. > An easy fix would be to avoid waiting for the folio lock while holding > folio refcount, similar to madvise_free_huge_pmd() where folio lock is > acquired before raising the folio refcount. > Modify move_pages_pte() to try locking the folio first and if that fails > and the folio is large then return EAGAIN without touching the folio > refcount. If the folio is single-page then split_folio() is not called, > so we don't have this issue. > Lokesh has a reproducer [1] and I verified that this change fixes the > issue. > > [1] https://github.com/lokeshgidra/uffd_move_ioctl_deadlock > > Reported-by: Lokesh Gidra > Signed-off-by: Suren Baghdasaryan > --- > mm/userfaultfd.c | 17 ++++++++++++++++- > 1 file changed, 16 insertions(+), 1 deletion(-) > > diff --git a/mm/userfaultfd.c b/mm/userfaultfd.c > index 867898c4e30b..f17f8290c523 100644 > --- a/mm/userfaultfd.c > +++ b/mm/userfaultfd.c > @@ -1236,6 +1236,7 @@ static int move_pages_pte(struct mm_struct *mm, pmd_t *dst_pmd, pmd_t *src_pmd, > */ > if (!src_folio) { > struct folio *folio; > + bool locked; > > /* > * Pin the page while holding the lock to be sure the > @@ -1255,12 +1256,26 @@ static int move_pages_pte(struct mm_struct *mm, pmd_t *dst_pmd, pmd_t *src_pmd, > goto out; > } > > + locked = folio_trylock(folio); > + /* > + * We avoid waiting for folio lock with a raised refcount > + * for large folios because extra refcounts will result in > + * split_folio() failing later and retrying. If multiple > + * tasks are trying to move a large folio we can end > + * livelocking. > + */ > + if (!locked && folio_test_large(folio)) { > + spin_unlock(src_ptl); > + err = -EAGAIN; > + goto out; > + } > + Reversing the locking/folio_get() is okay because of the src_ptl spin lock, right? It might be worth saying something about it in the comment? > folio_get(folio); > src_folio = folio; > src_folio_pte = orig_src_pte; > spin_unlock(src_ptl); > > - if (!folio_trylock(src_folio)) { > + if (!locked) { > pte_unmap(&orig_src_pte); > pte_unmap(&orig_dst_pte); > src_pte = dst_pte = NULL; > > base-commit: 801d47bd96ce22acd43809bc09e004679f707c39 > -- > 2.48.1.658.g4767266eb4-goog >