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 7971FC54798 for ; Sat, 9 Mar 2024 04:52:17 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 030986B0080; Fri, 8 Mar 2024 23:52:17 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id F234F6B0082; Fri, 8 Mar 2024 23:52:16 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id E1C786B0080; Fri, 8 Mar 2024 23:52:16 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id D14916B0080 for ; Fri, 8 Mar 2024 23:52:16 -0500 (EST) Received: from smtpin20.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 81DA6A1575 for ; Sat, 9 Mar 2024 04:52:16 +0000 (UTC) X-FDA: 81876279072.20.BF9119F Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf19.hostedemail.com (Postfix) with ESMTP id 47F401A0006 for ; Sat, 9 Mar 2024 04:52:14 +0000 (UTC) Authentication-Results: imf19.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=E0LGRKUE; spf=none (imf19.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1709959935; a=rsa-sha256; cv=none; b=1aMNxmCiJuYW71mdCUOKuQa5LfSBCfQiuvhFxvxfMKIYC41Ovx6lB1t+5KUMErm8ksJGOG qLPludhwSCTFhZzPwJgd/QQMzBcT+tHo/UcdtoMgAKcDOzLB8XL441w4jorv2fYGcizV1h XkVP6e8EG1+2Cp5zBIpVVom3pDnB0mE= ARC-Authentication-Results: i=1; imf19.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=E0LGRKUE; spf=none (imf19.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1709959935; 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=bxm3rccSHd6lqDXFZ+sibGjuB4oCIUenC5ZwcuTAUSk=; b=RlqNspwiwTmT6VjN1LhwuU2E1wGLdJ07VvJ5NPuy4kDBxP8FMS3ITbRrXqIadlpMTFMCzG GgR/nt8KPMajQEzaWos4TbmGsTOSTqGD3w3a6H8vik3qu8/KiZiN8dkIQpgTNLomi9JY3r eMdTZz8bLGGHDMu6LlpErZdfNAlf0DM= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=In-Reply-To:Content-Type:MIME-Version: References:Message-ID:Subject:Cc:To:From:Date:Sender:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description; bh=bxm3rccSHd6lqDXFZ+sibGjuB4oCIUenC5ZwcuTAUSk=; b=E0LGRKUECxCmVDcdsycXDMMAIG dYiPK5/xkWAaiS9UXHE7pOu9C2lhLT3uynZuSMTueQt1WuCS5ybBJP9MWZzWQngu8FpYW5Ln83Sc5 7W4YqzH/nLl/hUcBglC7o5Ar/JtOe4AUAt08/W8qYhysSXTRcpKufbW+4IhhdklmBLncBLwyuHWIA b05dFmGOanR2UKn47md7iVSc7D1M8gS9sq4WTevsugLBO2F8eKNq6yJNqTXNFxY2a4BpKU6bWiou0 zlhaoHQ5FXr/U3TbcJ2jCAZEMAoEvEpP5b15lYI3XcyRBRyrNfshj2dVungzRod40c7oY5B3onaWg SbLEcARg==; Received: from willy by casper.infradead.org with local (Exim 4.97.1 #2 (Red Hat Linux)) id 1riogr-0000000D2Kw-3jBQ; Sat, 09 Mar 2024 04:52:09 +0000 Date: Sat, 9 Mar 2024 04:52:09 +0000 From: Matthew Wilcox To: Andrew Morton Cc: Ryan Roberts , David Hildenbrand , Zi Yan , linux-mm@kvack.org, Yang Shi , Huang Ying Subject: Re: [PATCH v3 10/18] mm: Allow non-hugetlb large folios to be batch processed Message-ID: References: <7415b36c-b5d3-4655-92e1-b303104bf4a9@arm.com> <644c2f60-dbb0-4fdb-8505-96f8101b2399@arm.com> <20240308203415.3379391ec00d5a66cf66dd5b@linux-foundation.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20240308203415.3379391ec00d5a66cf66dd5b@linux-foundation.org> X-Rspamd-Server: rspam08 X-Rspamd-Queue-Id: 47F401A0006 X-Stat-Signature: ekequwnekxemftmrfcjdpdfng83ekzyt X-Rspam-User: X-HE-Tag: 1709959934-76765 X-HE-Meta: U2FsdGVkX1/HZTbfH9hcMpAxsTYS9VWR5T/rHxlyAnTs6Z8TeaQjGrMNordMCYhXfcfRedJqmcEIN1Wr2JgxCQuajiBZkSyMujEgR8FAtVQcC7WOMPxKSxEaW/RrvYIGffxaHiC6GDdDzjcVu2BIU1aW9SDdGOQXPIFfl3cYAR9/qYVuFpcq4yDn30XmDK0fUC0m5hnAcS7mOwT8eK0gooa3j44QtZoPqUkN0Ud18FMRniFvnuT0TUiQhZOjtzh5FyYaMBhNOVlNentogvpgm0Exj2IyKOUeXNhiUFG4BqM9LFa9x4gA1PiyOd17c4EUFV4dAvdI4tjA5EACUIcCvTd2XHWK7xtPkMRhunnTPzyb0wOPU75PxqjC6nLc/mCH+LYk13z55mFL43Gcm4ary3K8u9dD+DENZKTgfEFjm007lGWEMjDmx+CvztT/3DLPTxtOGibI3l7G+mA6RnGIGg/+p28XUZYLZs12MFbjjjPGR5An/u4dBHfX79FePKxHcGqOcNt3XvNPhC3+UZ9mwOuhZi4FEIYnoQG1AIiYbuxrSbZI1TVLS6JvG1/HnJ9HMXI4IkwF3pbjko2/aKCx2f7nkLs9iXwZSdDsSJHvcaxQ1zbbqivx0iPpovrdC4phMRryyfrJujM6FLdTn5AbzQxKr803qTgvn6p4hOec49cyAXu7WR9cSwUYl7JP5o+jZJK/W2hs9JKVNg6EVK25eWQyFbZ8KMUsXzrvBi7eU1ztS3WbIXAmkFiOpzZ4WM1Rj7EKg618uEapQxSDXGVPTBhQZ7qrQguaZ+Y6sWAcKLthq5IOQ5ablqIPk+B2x1aLWbyi9pVjLfGjAltcHjhuTQ== 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 Fri, Mar 08, 2024 at 08:34:15PM -0800, Andrew Morton wrote: > > We seem to be coming down to the wire on this one - Linus might release > 6.8 this weekend. > > Will simply dropping "mm: allow non-hugetlb large folios to be batch > processed" from mm-stable get us out of trouble? We can add a fix patch which re-narrows the race to the point where it's no longer observable. Obviously we need to figure out what the real problem is, but we could be going back a long way. We've definitely found two bugs in the process of investigating the problem (of arguable import; the migration one merely wastes memory temporarily and it's not entirely clear that the wrong-lock problem definitely causes a crash) diff --git a/mm/swap.c b/mm/swap.c index 6b697d33fa5b..7b1d3144391b 100644 --- a/mm/swap.c +++ b/mm/swap.c @@ -1012,6 +1012,8 @@ void folios_put_refs(struct folio_batch *folios, unsigned int *refs) free_huge_folio(folio); continue; } + if (folio_test_large(folio) && folio_test_large_rmappable(folio)) + folio_undo_large_rmappable(folio); __page_cache_release(folio, &lruvec, &flags);