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 AEB87C54E66 for ; Wed, 13 Mar 2024 22:26:18 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E57DE80069; Wed, 13 Mar 2024 18:26:17 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id E071380063; Wed, 13 Mar 2024 18:26:17 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id CA8FE80069; Wed, 13 Mar 2024 18:26:17 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id B700F80063 for ; Wed, 13 Mar 2024 18:26:17 -0400 (EDT) Received: from smtpin30.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 87EB31403AE for ; Wed, 13 Mar 2024 22:26:17 +0000 (UTC) X-FDA: 81893450394.30.BB5737B Received: from NAM02-BN1-obe.outbound.protection.outlook.com (mail-bn1nam02on2057.outbound.protection.outlook.com [40.107.212.57]) by imf25.hostedemail.com (Postfix) with ESMTP id 7B815A000D for ; Wed, 13 Mar 2024 22:26:13 +0000 (UTC) Authentication-Results: imf25.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b="dM+L6+/U"; dmarc=pass (policy=reject) header.from=nvidia.com; arc=pass ("microsoft.com:s=arcselector9901:i=1"); spf=pass (imf25.hostedemail.com: domain of jhubbard@nvidia.com designates 40.107.212.57 as permitted sender) smtp.mailfrom=jhubbard@nvidia.com ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1710368773; 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:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=MVqaP8cNzPdrOOpD3J5P3smTpGQFyFQ5Uu28XmcMZGw=; b=cXVnLvyjEqWhboPJgl88jfBliTax/a8NBGJ1cKUbmoNm/hNHwTnywTThu1QfXv+44OHVk0 8SVWtitL2Ei8ZEpp5EkcMMEYuQ4ocJjJ1AtgaI9CCdwIoGNhsV8vAXgwSAtlTYcmKSnQXh jJNWKo7LNXjKA42Cv5AGyuMV6EZNxR8= ARC-Authentication-Results: i=2; imf25.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b="dM+L6+/U"; dmarc=pass (policy=reject) header.from=nvidia.com; arc=pass ("microsoft.com:s=arcselector9901:i=1"); spf=pass (imf25.hostedemail.com: domain of jhubbard@nvidia.com designates 40.107.212.57 as permitted sender) smtp.mailfrom=jhubbard@nvidia.com ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1710368773; a=rsa-sha256; cv=pass; b=zvPGHNrnfYTGD3wpOhKQw94sTvwwQzTjDsP+MD1Gh3ajGeFQgYJM+DNitlJQWi6BI4SroU 4e0l4XgUw0huK6AJbN5yW4zSds5+x3IsckIsiXuWMU8+w4LtR0zbSENxsu7mokrf5YUBBo qZSLaRnzL45g+OFZomgLGoUMPNR+Gxc= ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=MQ9c47lFVI3K3LyvUnYoyl2qbdBGgaTd8YMZNcFMEXWvG8ezdyc3JBbub1IkoDaaIa6IQ/bJYg917Ld3AZpwntOMxq/79b+h1ZNlnQH9PknGb7lCNb1W3KaR8YOq2Cn+VI+tgEC/7/mU/xce0pyWAWiDp4p9oaLxDzKMojLyHR4301uKLx7vQ9VaOdjzJIUVpqanTxC8HUUhUTvkb6Z3XQnfowvDru/fCpGGDc+Wmib6Q4l/fWCbxzw+WQqeP9H80YWR7FfJrXQRk9kYodp34yLAo96dkhj1eWw5RkJEpNcGfgDy+TLsmpRXVUJJa+0lpW3oURx/aFpH1CKS1YcpFA== 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=MVqaP8cNzPdrOOpD3J5P3smTpGQFyFQ5Uu28XmcMZGw=; b=YERaXYmFtb+ym2tYpUlfB0bYzWjIBgUsFey8dXdnJX1h24S+6uHnVsE0CJf7F11o6Osns26IaerjDD4dMBJwZk1QO1DfBjx184xTjEaXF4rf0W2l97xt0W/7XKYo0HToe1QR2xvyACtPdzxQY90qFZXCqt1PsXtdKrIYo8lj58Y4hhoYlDBUQBUV93EqSwUVYQ6+ZNjD8JODJsrG5kZCW9k6PlRSPK4iOWvxBugvwpoMo2x983x9CCOcRcb2EGt904BZXbB1vvUOhGTF32B6FST1SZhKOfIgswhFN1KWUzgdZ/SPRA2VYvKxDC6Ft1u1mJo0i1Uid8wgbpiKW8KJgg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.160) smtp.rcpttodomain=infradead.org smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=MVqaP8cNzPdrOOpD3J5P3smTpGQFyFQ5Uu28XmcMZGw=; b=dM+L6+/U+Q+3y5mEV2R6LbVy29ZiW8oy82o/jNDToO5nirL7cAXL1w28Xjj5tRsVQLEW/hgL5xm0S1STC3nKyEMQauf/UkhnKOzhuhxYE9yZlULZLdkL+lX0niXifUqp3k+kzyqSrTE7Tx8aV4OhBPI7Nf4qY3B6uz/rKxOf05o4nAqa1a7EUgxHL5Of5aLNtDvlL2fcuqvtv7kj25+OMWUhitOSqBDm72eqBP6Zv/XnJM3qXpj22HKow27XGb4CbfXY7lhJ1PrdFnfad/ESRGGIiX3FaUBAiE3JvVA7goiKfV/Mudx9/UGE+jvDv0JxslGdy9dmRTVGjh/NkYddKA== Received: from CH0PR04CA0032.namprd04.prod.outlook.com (2603:10b6:610:77::7) by MW4PR12MB6826.namprd12.prod.outlook.com (2603:10b6:303:20c::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7362.35; Wed, 13 Mar 2024 22:26:10 +0000 Received: from CH3PEPF0000000E.namprd04.prod.outlook.com (2603:10b6:610:77:cafe::3) by CH0PR04CA0032.outlook.office365.com (2603:10b6:610:77::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7386.20 via Frontend Transport; Wed, 13 Mar 2024 22:26:09 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.160) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.117.160 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.160; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.160) by CH3PEPF0000000E.mail.protection.outlook.com (10.167.244.42) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7386.12 via Frontend Transport; Wed, 13 Mar 2024 22:26:09 +0000 Received: from rnnvmail201.nvidia.com (10.129.68.8) by mail.nvidia.com (10.129.200.66) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.41; Wed, 13 Mar 2024 15:25:55 -0700 Received: from [10.110.48.28] (10.126.230.35) by rnnvmail201.nvidia.com (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1258.12; Wed, 13 Mar 2024 15:25:55 -0700 Message-ID: <76ba9c50-6afd-4bd6-8f71-184c524d12da@nvidia.com> Date: Wed, 13 Mar 2024 15:25:54 -0700 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: Splitting pinned folios Content-Language: en-US To: Matthew Wilcox , David Hildenbrand CC: Jane Chu , References: <57c9e228-9aca-4da6-a714-f175f053ff50@redhat.com> From: John Hubbard In-Reply-To: Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 8bit X-Originating-IP: [10.126.230.35] X-ClientProxiedBy: rnnvmail201.nvidia.com (10.129.68.8) To rnnvmail201.nvidia.com (10.129.68.8) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH3PEPF0000000E:EE_|MW4PR12MB6826:EE_ X-MS-Office365-Filtering-Correlation-Id: e7c250e5-8818-45a5-078e-08dc43ac9556 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 4JvBU4iiXKMzyUWMAFXLZ63bzImCoo3gec8RABdoboJWDW9uPDbPyN+OyVxhG0VOExyRX+7hkDk34mdTuaSSm8auugXej9qwVbBUenp/yWxE6go+Wl1CuwAy34ruP8KuDRTOpP2CESpNSSZyNQBI7lEJKS5Hx0pV7GFHCKaYttLnETm3oxuU/JDOj4lInoZELkAbgQADjffJoig1G9ddpKW29IbkgchbvLg+asg0SgnSx/xHPIIGVBzHTtR4fQC7l6ewwGIkOQCgogL5xjiEaBxO8wqpxh1yU41fDLr6UpSUotyRVNomUnGqawVm/ohiGgB3HaWi9hkQk12TbJtJg9DlaJnmEX9q3nWKtJ6O2DsfdBMhT8Wsp+RLr39RzSMslA1/ySFURFzs900G31JGiO3C6UhDTwhusEtZmUsHUrBYswZ/YWdFxsfrfSMycUGy9tYQgEBlCwENvunleBi0gGS8qMJLAov0f3h0RXdPhxLsqNH2gxY6n3DL2YVx6qhykCKoR3FVf0eL8nlF7IlV43s9E7MpcxnWqHE/WID5OEjQfQekbfIkJOM2779NmKPqwZH11hCR+iSSutpVlxDcWJdBgbAcS5JWtNzHA0/TzGCJbC3V87wP9Z3etda4GAXQkgN1KewaLmLctzmd9Db89VrsAglI3vPt6SuGLBXTs7vfDqVX2NzAfAQjmXqUSlbn+RmkNpy4B8iPjYUEsEq9aOcamZLDyKXATShuscge3Oj3KYaypXccfj9AgqJIzWHq X-Forefront-Antispam-Report: CIP:216.228.117.160;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc6edge1.nvidia.com;CAT:NONE;SFS:(13230031)(82310400014)(1800799015)(36860700004)(376005);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Mar 2024 22:26:09.7084 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: e7c250e5-8818-45a5-078e-08dc43ac9556 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.117.160];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: CH3PEPF0000000E.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR12MB6826 X-Rspamd-Queue-Id: 7B815A000D X-Rspam-User: X-Rspamd-Server: rspam05 X-Stat-Signature: xo6pwwwgpjbq7n8mgxhkm1guasakdq4t X-HE-Tag: 1710368773-243604 X-HE-Meta: U2FsdGVkX1+5izfMthVMtKGVir8B9tJEWbXPTE1UN72ZJJDaf+wgeTMhhGK/k2Qt5jWqD37zmVIlkOZJgf93H45ZjFHjFVnc0Ld1A1cnYT4EM4+e6Bf2d6w8ZEdROdtlMSsGsFol1oDaq9FN5lmZWQe51HFABSmovtY+AxO1BGwEua0y2coHtzJY+zX+1BSELc9JfQ3DaLx/pgGTXOPk8pgPrZkRUwjGCrFjsqBFdGNUlA0x3L15ORdU91e2dtrNLFGpIjJtdeJYD0bSeLfWzIuhHn4Dim2GjeODm1sKytm3wx6lq1Bmuo5uPCsUzdn4Lyj3UqBd89bjiPS3Eh8SvqVGMEfE5Oy+SgsmEz2pDV7leEaco864eNsVuHXx3v/utiFGguqbYxKTnu6/OxhzsVUXbc2rPVyxAGVaL9MkzMykz8qsEY0gexRH4LXEQ/x3GPeLSUPtrPGVIbekat4GazwwNbuUvacEpmAH94ia2RckF2khgA9xjkK9tuYlz9lD0+wGk59ZGWaVPbe0dL4xJ1Di7XMo3u8h9XKmL1beAjk0iVnwcSKLvV6zTXogEFuSlZaHq1zugOZ5Icgih8ARVctL1J3wCjulV/pIRLpTsppdr7qQOQwmCUA/NYS9uoam7PcJP0pmu9yPvcG3SahX8SnScN8Lg+nmh3L5+3oBLDDSB/IP5PrmYISN6xlopX/K218indKdrG/ak8jOvq40OIWDxOR95b3fN5fTSE3Ef74z9NuKznTBn6FDIliHyiAFDOLVe+cmb8ZUeXWa69Umq3uoGvnQ9X72t1h6+AWpYCDPC8ATFkj1jdU7mRdr6Dqf3K7CkFflVY4r7d+w1D87SFWMu9UHcvdISXTrb154RKJzkMOxPe1UBcarUdo70iIFTPw3Q0nVemsCDJyTY159txCnstWuPR3ZrrsoNF99cJysDqMTvkCa8PxGLG3RaGxXHnIq9Q0aj03kG6Y9mKZ FPefSaza 300ILTULjW1GKGvLvf0VqZngC5uoYdKv2k/Nuf7BJxYTG9GckyJBhJRwsTzQ/aoLTK+cQTY/7vNrn77R0F8ueQDEerx6lWSbFicZgCRp2bpfw49gwXCRoXuUauVOrdj6hA4zoIaLvexNxjNHAXpMrX3WAJA2EcxdS9HhkP84HyPhFA5A+rZukTKXttTcmVl+MnkPIX+ZCvEOS31d8KrTMSKltkzqjzslCnI0jw3BHvrBJIZfb3d0RjjWAoJ0k98r4WuawjipdiMxJE+nktNlCBAJyqdQxp/tmAsiobuFKNHbfMmIObtpAa6kzudMW8/IKnpSEjmtvj3SrIhmzE9gWonQP4E7I+u/HBx4OXGOHlcBeTe6Y3jsURQmx+Y3iq7bHCy+fF4JhZo9zHfsxZf68Ewcm3g== 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: On 3/13/24 08:27, Matthew Wilcox wrote: > On Wed, Mar 13, 2024 at 10:20:46AM +0100, David Hildenbrand wrote: >> On 13.03.24 04:16, Matthew Wilcox wrote: >>> On Tue, Mar 12, 2024 at 06:23:43PM -0700, Jane Chu wrote: >>>> I noticed this recently >>> >>> OK, this is entirely different, so I'm going to start a new thread ;-) >>> >>>>  * GUP pin and PG_locked transferred to @page. Rest subpages can be freed if >>>>  * they are not mapped. >>>>  * >>>>  * Returns 0 if the hugepage is split successfully. >>>>  * Returns -EBUSY if the page is pinned or if anon_vma disappeared from under >>>>  * us. >>>>  */ >>>> int split_huge_page_to_list(struct page *page, struct list_head *list) >>>> { >>>> >>>> I have a test case with poisoned shmem THP page that was mlocked and >>>> >>>> GUP pinned (FOLL_LONGTERM|FOLL_WRITE), but the split succeeded. >>> >>> I'm going to blame John for this! That's a reasonable initial step, yes. haha :) >> >> The description is wrong. Whoever calls split_huge_page_to_list() must hold >> a folio reference. >> >> That folio reference will be transferred to @page (not the head page) once >> split. So @page can be used by the caller after the split succeeded. >> Thanks David for responding so quickly with these gup/pup answers. Perhaps I can fix up that documentation comment a bit. >> >>> There's no reference to pincount >>> anywhere in huge_memory.c, so I have no clue how this comment is even >> >> Each pincount increment/decrement must be paired with a folio refcount >> increment. Therefore, no pincount checks are required. Yes! In try_grab_folio(), that behavior is documented, although due to code movement and refactoring, the comment refers to behavior a few lines above it: /* * When pinning a large folio, use an exact count to track it. * * However, be sure to *also* increment the normal folio * refcount field at least once, so that the folio really * is pinned. That's why the refcount from the earlier * try_get_folio() is left intact. */ thanks, -- John Hubbard NVIDIA