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 B4893C5B543 for ; Thu, 5 Jun 2025 03:43:28 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 565896B05AF; Wed, 4 Jun 2025 23:43:28 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 4C9446B05B1; Wed, 4 Jun 2025 23:43:28 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 3B72B6B05B2; Wed, 4 Jun 2025 23:43:28 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 0AF706B05AF for ; Wed, 4 Jun 2025 23:43:28 -0400 (EDT) Received: from smtpin05.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 7B569C14CC for ; Thu, 5 Jun 2025 03:43:27 +0000 (UTC) X-FDA: 83519952054.05.441DA2E Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf16.hostedemail.com (Postfix) with ESMTP id B8724180009 for ; Thu, 5 Jun 2025 03:43:25 +0000 (UTC) Authentication-Results: imf16.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=korg header.b=vE3Z5nrD; spf=pass (imf16.hostedemail.com: domain of akpm@linux-foundation.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=akpm@linux-foundation.org; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1749095005; 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=mvgUqPEGyiuUPCC/H2ckQrkPb6HBNIb+zmdv3qA1UCc=; b=lY0wjO2wUdsjLwusZX5dmQbz4vcSDEbUzsil7qgSMC5utlkaZK+YomdGVJRn3r1GNoIxwt wepWWfUfxg23IDJtrmxtDtrP/gd7Avg1/qZM3vopjfOI5fFum9R2AIeyn6OsezvF0YXaod bMVbszvs4L5IICu3RpHA5RH/KvLHXGw= ARC-Authentication-Results: i=1; imf16.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=korg header.b=vE3Z5nrD; spf=pass (imf16.hostedemail.com: domain of akpm@linux-foundation.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=akpm@linux-foundation.org; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1749095005; a=rsa-sha256; cv=none; b=H1vrx2xrMI44RVLzlUq1vtFybauvumAAjlx163sZeynO5mpsIYatHf6X0qry9sJIby+jD6 yWzfi8VSFaO7bO1qthRwytZG34vW1IGDMC6GXy24+SyPZT3UaLcTpbWXvxqz6pTes5kYBC L5ibC5BF/xFXBevue9SeH35ZHTzD9YE= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by dfw.source.kernel.org (Postfix) with ESMTP id BB2455C1106; Thu, 5 Jun 2025 03:41:07 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id E2970C4CEEB; Thu, 5 Jun 2025 03:43:23 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linux-foundation.org; s=korg; t=1749095004; bh=sAWDLLVExfSdqrwYieUPJUq0LX0W8qh3MRDgC7cddeo=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=vE3Z5nrDR8c5pmkqLn1SwM2W0BeGhJB2EvfmuNmtbmOJh93W2LxDAzy9uc50eO3hl uNNoo1nigjkQqUrYItUttGwYsNZNtzwaMwCvdUvO6pYI0KRUUSOy8UxJorxqc7y+N2 WRb4zXm2b7qNuA4qjOACNY9eNKf3PpuCzTl30414= Date: Wed, 4 Jun 2025 20:43:23 -0700 From: Andrew Morton To: Hyesoo Yu Cc: janghyuck.kim@samsung.com, zhaoyang.huang@unisoc.com, jaewon31.kim@gmail.com, david@redhat.com, Jason Gunthorpe , John Hubbard , Peter Xu , linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH v2 2/2] mm: gup: avoid CMA page pinning by retrying migration if no migratable page Message-Id: <20250604204323.95a646ae67f6800069a11e36@linux-foundation.org> In-Reply-To: <20250605033210.3184521-3-hyesoo.yu@samsung.com> References: <20250605033210.3184521-1-hyesoo.yu@samsung.com> <20250605033210.3184521-3-hyesoo.yu@samsung.com> X-Mailer: Sylpheed 3.8.0beta1 (GTK+ 2.24.33; x86_64-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Rspamd-Server: rspam01 X-Rspamd-Queue-Id: B8724180009 X-Stat-Signature: odn4u158eyxgstuqc4o98oye8xtp1mji X-Rspam-User: X-HE-Tag: 1749095005-778586 X-HE-Meta: U2FsdGVkX1/Ugd7tiU7GAzKj0b84/FP+MVF7ET6N1EUnl5C8b1+WEGjpY/qx5ssTmUys3ElxI5VrQSEJ/yyO3D/GaKOia63gz30s9najoFPxr2k66GssDQsq4ZPOtJGK39p7A8v4Il6dSkxVFXbukoXxb0PoAfYWAQbPRMpVveIVq3N+Q6AR8UgggaTJcs6cIaDdygkDskuhchjXHjbrwp1eTejyaH3EgdOxCp39duUdcqsDBlwFE9UBEWv2wHkz3Z0Rzxir7HqNTkpB7ksagyf8di3wfHEVvB0uDDJTPZeg8jAWs+QGLOKaotfq+jecmoAk7RrgRRRNLJmsoyhFknZgGClzBsicRxJrLRLihfF29nkwIdh5UL2q/UX0mS1Lb+KBuT8ouHFQojT9U5qz6/Ym6GkF8GY+HUPuGTp53oRPXVnMZlEiMCQgaXNlymOOPdKEkapA2EXsBsl7sFHfHO5DxEfbphSMsjkQ4BVXDzG6tnvB1n4wWzOGKM2rEZ2WpczuQzooyj/pJZXIdNWcCZf3BhbLai+HQnAh4cXE4j+mZQbNARct240kheZ2DLaAGOwqZ6Yf7c2ukuCAfh61LKLMQdxED4HK6tPgaS8jRtiZfhOG1gNhGHqxxY+aU59vYHmSu6QM4ofiZkkKOFs/BnrXFnUDJKZSYgzKMePSaLfiV/GL/N/VLRuKlKGU0s4pLmqJ7EsmR5Fb+YHVdhUn+OgXCtH8I7Lw23lQazFce3n/XMLiNUC5I5csv+7x1E4Z76ytJdnnjkMtNEr1YaEa2PxBQwfTRYENkVLFWaB02LVaNrWQh9uvGchIt2JLMozXQ/03xoB94Joa6C5Ht92PwIUHYQFrbzRYkt1lP0PfcfYHP5w45ppC5ijGmclEu7GNNirXz0umnL06uwtzUNmKzBSsLj3wDy1KHX4G6QmxVw+PFISq68Cx8mxR9O2CGa83G9eqWYjeRYjk6gnBdwh 5KBF4ODL CUOen5ObjXTw9FrxVZaOgjQYbA2RaumQSFHhc34htJRD1+LErTo3ZPAaTFkYPadncM1/LWBTaomwTbbcN6dOsvmPu9JxtwNmCHkn66Lpuhix8S4TnyqEQR0FdzN5pIg9crTzeeRgArpQlfDoSvfq3Qtc3ga6C4Ac/eSjdFGRbmBXncafvcdovsQw4/Sz8fr0bPTclbV1H5Ceh+CfdEZfq1abnwOz1koQqMgYzv2uUzldT0H2zmHt0xqVlJQKKPR73asUXQLnyVjlWeM55AC+j2dmGsMRFPplAmT20N8Dc8OWGse1CK8wMPcIDjTZ6qTXOLaLwxnB1jxfhVYiJTjO1/JIgmA== 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 Thu, 5 Jun 2025 12:32:07 +0900 Hyesoo Yu wrote: > Commit 1aaf8c122918 ("mm: gup: fix infinite loop within __get_longterm_locked") > introduced an issue where CMA pages could be pinned by longterm GUP requests. > This occurs when unpinnable pages are detected but the movable_page_list is empty; > the commit would return success without retrying, allowing unpinnable > pages (such as CMA) to become pinned. > > CMA pages may be temporarily off the LRU due to concurrent isolation, > for example when multiple longterm GUP requests are racing and therefore > not appear in movable_page_list. Before commit 1aaf8c, the kernel would > retry migration in such cases, which helped avoid accidental CMA pinning. > > The original intent of the commit was to support longterm GUP on non-LRU > CMA pages in out-of-tree use cases such as pKVM. However, allowing this > can lead to broader CMA pinning issues. > > To avoid this, the logic is restored to return -EAGAIN instead of success > when no folios could be collected but unpinnable pages were found. > This ensures that migration is retried until success, and avoids > inadvertently pinning unpinnable pages. > > Fixes: 1aaf8c122918 ("mm: gup: fix infinite loop within __get_longterm_locked") v6.14. As ever, a question is "should we backport this fix". To answer that we should understand the effect the regression has upon our users. Readers can guess, but it's better if you tell us this, please?