From nobody Sat Feb 7 10:08:00 2026 Received: from PH0PR06CU001.outbound.protection.outlook.com (mail-westus3azon11011045.outbound.protection.outlook.com [40.107.208.45]) (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 25AC730BF66 for ; Thu, 29 Jan 2026 14:41:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.208.45 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769697710; cv=fail; b=rklB1y7GIjw86Gl4f046nNhc2PopsYjnAz4rI703Ocpb0qsRAuE0/HW0To0EEL+Z0IUz55Cgk8uNXHYy0zzAD3/6uDzGLuarpOxM3FffPhFKXotvZl/yYSM0BbP/0YL0LOPoVGjFTxtmyEO1SFeYYNnvcT3r3SmOiWmY4EC3tVc= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769697710; c=relaxed/simple; bh=YXFfIUhwC3aVwA8rXGu1b2pQnHdaRLvyl9lJglTjD1k=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=mwW61Q/ZsqWjL627J0dTiYPbjC28EDEAiI6CchqOhD5iBV4AN4kT71F9toZmIabsk7hIuoy/fTwhxFlI+uwJ5omck5A1kacbKoAwiJkCVLlFUoqQDr4fhlqcA6LmdGQ4+RJANfk5k6Tz09q/+oeRBbMR+MVnpwqEqvs/qupJz2E= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com; spf=fail smtp.mailfrom=amd.com; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b=pjckwvg5; arc=fail smtp.client-ip=40.107.208.45 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="pjckwvg5" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=fNyw/mWkaN8u1fmRxra1a8ttSmIv44ILJRiGC7BDetDPzkIV1QAqpDB3U5qi0LhBDW1nzSPF5XjP1Xms6H83IY/2rmH6J87U1aG73aDyiRBKqRagVDjZcVVuiRVzRfhQbDB44o0at1PnNPhkIDugKahWAu/85it0UfJkTbAFHihOF8kPPeuJJucTgAf/8hkllDUi2iAyR7iLZOv2DH64vEv6nDWuynDL40qLX8bq6wk6F1/GMXe/rSnMOYSQcrupWgEYvWaUpiob9+gVv9JVfwlFCICTj4C7BEUp+it/sMWOkzKdoYu8kV7t6OD0z37vj1rKgSgAfKUQdKiCHklNpQ== 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=Y3TXnm3YqWala8nESp/YB4DNry5KtX1V6w/Vij00Mnk=; b=L7Z2+BeOjusLxJdT3Y7snAWNeL6EfalNxkZf9Q1dFtTQUaxBPP6bD5fYwAAI+dicWPKOS5GbcnDSud4YIeMmC0LsPWtDk6QRe+6GkzJOh7IfDAp9jQh0fLBrtfISJ2xZoolTP+q94h0dRP3O9LoRB+myZp5Iwk+mY+IPT+jdvfbj4d1LksHIHQJqnfKeFF3k3jFoqK/9QmuIVI2ZkhQu/jOJCgw6KhrFtJD/DaE8sPWGGdyb4c77pT0y0pw2xtHWJuVQN/WmKe/krZBmeSnfGV4ZKvgACUj5UnglfxdLQMXAUBTYe2CxrFAqKeBhWTb/DQkyPJ68gSEiOfzDNRAthw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=vger.kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Y3TXnm3YqWala8nESp/YB4DNry5KtX1V6w/Vij00Mnk=; b=pjckwvg5ezmGTC3Ur6n4RBpm2ihi5qASE52ThW9l3TfSc4TF9WfUtS2YCr+5vYcxuEIl+Zwe1aFxwzMDhkw518/iVWa8nysV9P2hKTAAJ3erXRtzmyWM8cOKaeY4/DbGXnuFLFayu9e84Sa/NT8js3g9uLyDuxQTb6cTOfC1kDA= Received: from BY3PR05CA0055.namprd05.prod.outlook.com (2603:10b6:a03:39b::30) by SN7PR12MB7884.namprd12.prod.outlook.com (2603:10b6:806:343::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.7; Thu, 29 Jan 2026 14:41:42 +0000 Received: from MWH0EPF000971E5.namprd02.prod.outlook.com (2603:10b6:a03:39b:cafe::b9) by BY3PR05CA0055.outlook.office365.com (2603:10b6:a03:39b::30) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.4 via Frontend Transport; Thu, 29 Jan 2026 14:41:40 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by MWH0EPF000971E5.mail.protection.outlook.com (10.167.243.73) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.3 via Frontend Transport; Thu, 29 Jan 2026 14:41:42 +0000 Received: from BLR-L-BHARARAO.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Thu, 29 Jan 2026 08:41:33 -0600 From: Bharata B Rao To: , CC: , , , , , , , , , , , , , , , , , , , , , , , , , , , Bharata B Rao Subject: [RFC PATCH v5 01/10] mm: migrate: Allow misplaced migration without VMA Date: Thu, 29 Jan 2026 20:10:34 +0530 Message-ID: <20260129144043.231636-2-bharata@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260129144043.231636-1-bharata@amd.com> References: <20260129144043.231636-1-bharata@amd.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: satlexmb08.amd.com (10.181.42.217) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MWH0EPF000971E5:EE_|SN7PR12MB7884:EE_ X-MS-Office365-Filtering-Correlation-Id: 326c1adc-eb88-431a-0c0e-08de5f4484b6 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|1800799024|36860700013|376014|7416014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?MlRnmO0fA+i/nWaeLmWxQQnz3gfYzqEyGWycJb+6CTJtwS7TLcrWNWFYPUZu?= =?us-ascii?Q?K7A5YCPjsj9g3sypufuX27HcPgfH/ZOifnI2iU0jT6aFiAZlgKVax/BizEqp?= =?us-ascii?Q?brum72xvnHUHV9kYTCMnIUR4o6tzwX3WkpuZUK3giiTrZ4FxRNSitN1ZLeGa?= =?us-ascii?Q?vZKuj5JbtIRmhRdJNpraAz9oZfe7jlo7OLRbv/NI20xxgWrk1Yz46dpxSsvg?= =?us-ascii?Q?cudsfIRyX9jNaTHousHcLzhBc5HQ+J77wPUAXQ7hzCUnNqPRM+HWocfDx47e?= =?us-ascii?Q?QnhzxSbqyWJRKD9YYf+PebItrY3iYhQR3KVKyK9Au0uiMF6h3TrRPDDyWUR2?= =?us-ascii?Q?g60tYhOVbzVdm2I+Wyt52QRXdeeYHpadmg6uiFLlXrLGtP2Ap+kpZw5h8gkA?= =?us-ascii?Q?HTWR9WCUmT5FUtv+/qS1U1HVc3XR9GuQtnPGPu7ByN8XdBDLh28Jmi8U3q5t?= =?us-ascii?Q?AZ3yPIGZoAYCkeQr/OUkgvamGLCMqi2RR/QtfKq9Riu+77/GYYosm0BiLDLV?= =?us-ascii?Q?0cY8IRAOrEOGRaFZBjelEeglAJTViVNJzbfn5Eq+h0lsUM9dx0jyUQXUBri/?= =?us-ascii?Q?Spw2awtLDgpR+tqQ9JF6EoKXGDNYn1lLu69eI65tTGtfmLELaVNsDhtSBXJ6?= =?us-ascii?Q?kLg5PcS+OJA8qAGNcWGyndMhmWHWm8wNz6+8IvzNLX6Qeztw0DqmMQc+sZIK?= =?us-ascii?Q?39r6hNhx2C4rxGgaWuDL67UIno6Z/PyKBGtf14l3kMejjRoAKKaIwmqWtyfm?= =?us-ascii?Q?+MWpX31FvKwbORjYUwQvrDg3qoVVzjqXoYVoJ3nPzJSTiRAvDYL+QWNOmcOo?= =?us-ascii?Q?zAnmF/N3eiRlkDAvLy+ywpkTOZUG3kbLsjgibagbC6sOT5RzOQSdrDej86aG?= =?us-ascii?Q?HAITeOewDaqrLRVRmUITyN/Xm8Ne1yC4isu1E3Yxondwg3724KzG9iVxYyTJ?= =?us-ascii?Q?gQtAIkNdCyN+vEGlHKtirzSGZupFL0dHi46UYS8GGssydar0ZkFmdkeIbe4I?= =?us-ascii?Q?l0FXSDuB54BHueBWbJJZCtyOBWWCLAus+7ByjLdNafkTExdyupBMmzR0Whkg?= =?us-ascii?Q?0Vsv29nq0sXc+hQgRN4yPamQ5ZfyMGXqBeEYPnd4ukjD1om8Zv3ZMsPSK879?= =?us-ascii?Q?tdM8yCdvXDl2mXgq31IGsZpWZPqgUFm2YetFePDcj2/1LM91DoXDmCPl82JX?= =?us-ascii?Q?cllwPD9kmcSQPcN9BumryIdQI+G0rjpC3TJb6tIOkFOLqmxEXdgrKsMotA48?= =?us-ascii?Q?CBiSeLRdHEuddY9wGAvjQI3ZdO800c9eLm6IKrLbc8Fg2y36uFV7glMdnuoh?= =?us-ascii?Q?ddVM+1k05pICbQcXPq7wJTZnnLcnkOyBl0mbQ7McZhuSmyRFI+P5+Nid/uBh?= =?us-ascii?Q?ESwqhsX8BL83dXBP1wZ1No5F54ZVCkT0VVBRt9EA1ZnQSyQybnKSBaMpnQdA?= =?us-ascii?Q?5OQCJ4A7UZjX3nGMH7JXECOQPQjI8iUEeGGAc+wV8ids6qE2Q3Neak2Qlxjy?= =?us-ascii?Q?De4/AcMXgUwIsAe0s0n8XjcBI10XO/35RX149v/NflZx0bhhq4Ro2gy2W04T?= =?us-ascii?Q?2hCKRdFlvgXqltNZCiH3ym3GrWIm1R9kJfsrFt0Mx0XXzNLhRaEdDOjBGqqp?= =?us-ascii?Q?SFfhAaBeSHyGfrngL35MZMKjZO2GrSzQcx/5m3Ap9UeoURkJBE886ELuV5Wf?= =?us-ascii?Q?SYmTsg=3D=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(36860700013)(376014)(7416014);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Jan 2026 14:41:42.1340 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 326c1adc-eb88-431a-0c0e-08de5f4484b6 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: MWH0EPF000971E5.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR12MB7884 Content-Type: text/plain; charset="utf-8" We want isolation of misplaced folios to work in contexts where VMA isn't available, typically when performing migrations from a kernel thread context. In order to prepare for that, allow migrate_misplaced_folio_prepare() to be called with a NULL VMA. When migrate_misplaced_folio_prepare() is called with non-NULL VMA, it will check if the folio is mapped shared and that requires holding PTL lock. This path isn't taken when the function is invoked with NULL VMA (migration outside of process context). Therefore, when VMA =3D=3D NULL, migrate_misplaced_folio_prepare() does not require the caller to hold the PTL. Signed-off-by: Bharata B Rao --- mm/migrate.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mm/migrate.c b/mm/migrate.c index 5169f9717f60..70f8f3ad4fd8 100644 --- a/mm/migrate.c +++ b/mm/migrate.c @@ -2652,7 +2652,8 @@ static struct folio *alloc_misplaced_dst_folio(struct= folio *src, =20 /* * Prepare for calling migrate_misplaced_folio() by isolating the folio if - * permitted. Must be called with the PTL still held. + * permitted. Must be called with the PTL still held if called with a non-= NULL + * vma. */ int migrate_misplaced_folio_prepare(struct folio *folio, struct vm_area_struct *vma, int node) @@ -2669,7 +2670,7 @@ int migrate_misplaced_folio_prepare(struct folio *fol= io, * See folio_maybe_mapped_shared() on possible imprecision * when we cannot easily detect if a folio is shared. */ - if ((vma->vm_flags & VM_EXEC) && folio_maybe_mapped_shared(folio)) + if (vma && (vma->vm_flags & VM_EXEC) && folio_maybe_mapped_shared(folio)) return -EACCES; =20 /* --=20 2.34.1