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 2DC26D41D44 for ; Tue, 12 Nov 2024 01:36:56 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 731626B00C4; Mon, 11 Nov 2024 20:36:55 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 6EAEC6B00C8; Mon, 11 Nov 2024 20:36:55 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 582C66B00CC; Mon, 11 Nov 2024 20:36:55 -0500 (EST) 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 3686A6B00C4 for ; Mon, 11 Nov 2024 20:36:55 -0500 (EST) Received: from smtpin21.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id DCC1A418B1 for ; Tue, 12 Nov 2024 01:36:54 +0000 (UTC) X-FDA: 82775727846.21.7F937D7 Received: from out30-118.freemail.mail.aliyun.com (out30-118.freemail.mail.aliyun.com [115.124.30.118]) by imf13.hostedemail.com (Postfix) with ESMTP id 5F3DF2001C for ; Tue, 12 Nov 2024 01:36:08 +0000 (UTC) Authentication-Results: imf13.hostedemail.com; dkim=pass header.d=linux.alibaba.com header.s=default header.b="xnb1/+RW"; dmarc=pass (policy=none) header.from=linux.alibaba.com; spf=pass (imf13.hostedemail.com: domain of baolin.wang@linux.alibaba.com designates 115.124.30.118 as permitted sender) smtp.mailfrom=baolin.wang@linux.alibaba.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1731375325; 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=R5QxhmAMwppwlQ+vZ04VhcEBN/cXpTBAqvhGBGhgXZw=; b=rvNA4J3tN/aP0uqLZkDLGKhMheVjcYKxID5S0cMnpwtXGGHs7U+GwOoh+gqRsy2V1yzKMI d+qBDltHuREqYU+GTKR44sWXeQQczFx+35XmOF4LUUALKUSXJhwmFV6+7fJi9JZ3jYbn5m haXcUTq4IiADSnElIimwFVFezqLESGM= ARC-Authentication-Results: i=1; imf13.hostedemail.com; dkim=pass header.d=linux.alibaba.com header.s=default header.b="xnb1/+RW"; dmarc=pass (policy=none) header.from=linux.alibaba.com; spf=pass (imf13.hostedemail.com: domain of baolin.wang@linux.alibaba.com designates 115.124.30.118 as permitted sender) smtp.mailfrom=baolin.wang@linux.alibaba.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1731375325; a=rsa-sha256; cv=none; b=L4hRO5xDVf+iTFHPgt1v9GAPvXDkjh0slKyNrDqYy0Smd1GQiConT8w5KLoLieByW4Mk1O fDKCbneuAZDr0VCBeqorE+4G3xSdfqGKTx5mT6uiyRrcgaqVFkfuNU/dPiAr7ur9wv49A9 3hMoC3IhcAxo+uHUuF0sVzM9w2aO9DM= DKIM-Signature:v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.alibaba.com; s=default; t=1731375408; h=Message-ID:Date:MIME-Version:Subject:To:From:Content-Type; bh=R5QxhmAMwppwlQ+vZ04VhcEBN/cXpTBAqvhGBGhgXZw=; b=xnb1/+RWkK5lHphRiHzstmIg98KLZAkiSR0UbI4wUt7MOLgCNCRZ6Do3Pzao95PaT06s7lQYCy8u+hdmFS/fmXVK09huAzjHM9wO2C6e+09F3VC0JQ8dU3dXLg0uzRJ4t5WdgUXHJwzGnZMNJNok5QwvIDUJr5neJdrhLBFBZTg= Received: from 30.74.144.120(mailfrom:baolin.wang@linux.alibaba.com fp:SMTPD_---0WJF5sWN_1731375405 cluster:ay36) by smtp.aliyun-inc.com; Tue, 12 Nov 2024 09:36:46 +0800 Message-ID: <9633a282-dfd6-4327-bb05-4d03bb88718c@linux.alibaba.com> Date: Tue, 12 Nov 2024 09:36:45 +0800 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH hotfix] mm/thp: fix deferred split queue not partially_mapped: fix To: Hugh Dickins , Andrew Morton Cc: Zi Yan , Usama Arif , Yang Shi , Wei Yang , "Kirill A. Shutemov" , Matthew Wilcox , David Hildenbrand , Johannes Weiner , Barry Song , Kefeng Wang , Ryan Roberts , Nhat Pham , Chris Li , Shakeel Butt , linux-kernel@vger.kernel.org, linux-mm@kvack.org References: <81e34a8b-113a-0701-740e-2135c97eb1d7@google.com> <6fcaaa72-4ef6-ebda-cf37-b6f49874d966@google.com> <3c995a30-31ce-0998-1b9f-3a2cb9354c91@google.com> From: Baolin Wang In-Reply-To: <3c995a30-31ce-0998-1b9f-3a2cb9354c91@google.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Rspam-User: X-Rspamd-Server: rspam03 X-Rspamd-Queue-Id: 5F3DF2001C X-Stat-Signature: y7twuonnrx3tbpak788k19m5enejjbew X-HE-Tag: 1731375368-351081 X-HE-Meta: U2FsdGVkX1/l4y90FxqdhvruvECEwRh3rTtBkN1WYsMEMvwG+gqqmBPUh/mVpbYznKOKYStRt4WXYNdq33CShp6qDP++Z892cQPAIpplCj5AAELohamCmCxcRxCESHotJyMgzOaBkWynZt6vZadLplmcX6TTqUecsP1Bd6vialXW6EWh11wyeE7qbwbF6L3D6FAHTAXuLk51KjV4lTgBLQS3D3vitrx6Y0FyolmJWjsKjuYJZX6d0X/XOh3rGsl8IIEgMM4knYnQ7BgfFz7NlkBTcJYUbmw6R480I9PHY2fmJgrbTAHqLRy5AgG4JjDWue5hKuwTSSi3zeZZlrIFFNozcBmsUZDLWBxxqSbi59tkgoHBpYpMRD7SfaIk3yeLuJDS+Bq2d+wnsEr+WmSoDCbf/t72kr2diee6jbVDggNnh9EWPRi11FPxqSN7YcDAxXcdIcGJ6dYL5/JBuXFX4EUnm8Fr6O8F+UuB3/9aIEgCq9lcz8v4GcCQSyVlW9WVw754tE0HZpdB9azViW4/q69/lcTsxDkPuy2rArHqhOUmzKDqXoQF8wBo+vMRPQGmxj1frTS0gyb+Vp9sd9UaFtBh+V6ZUgRQ3uN9adn5BLKsVrXwR6mU56t78qiFQ3HpoETMgEDD6pKXibQU9JRxeeFnktoqwBfIDTiPQeE7IKqsWbMBTZQEcg2gYjx3pd6KhLE4vEEyIC+h3OJ+2XERLt87ExvVEklFYh+iiAGdZW1//IgNnr97z4Er3/OObKlkumje9+4H5p+FFMC1bGb6tCkja/bD3HoQthVBqPf6a1Jnpg668ky2uuHxXHyC2p6/phDRtId/m5iQfrt9mqUymJYKwQPaWia5SwcbCvbQ7hwNKz8lYI4IWTUjrO3hW22NDREeNHx/HYS6I74PuH4LbNs0fBod1ZcJVmcopPebDlJ6Day9gi2lwgbI6W8Z8oYSK/PqaL4SWAFG/zaWCIo RScHzEeV XCmi69gxJcArRt0khANOXj2iDyEGjHHoKDsT5Rt7rNKL67LDm7PQ+h8faoQNtouqJ/Sq4GlDogyyiWDcNmMpCiiIx9rLXq+AzmU7Ip1QDEth0W/Lt/ImEhaIArCkxmow4qJDa/UIch5FbjIDs3csQuU3P2m/bo/BNaAzJFbw1lH5ancB2wzg5tRXc3ualw443zhtEEFKxyDPFA1OIvTldpTnaFHIm0BXYL8/070ypm4pTWXbFFp1P9ZrWfb/7/zJiU2PMWB8X7heuZv8HL8SUHA334t9Wc7mtNp0s+I7cisuY9hmFgn0Wpcxih5YbgiCG/7z7jFQc3mIODrcfT11LJFuaeEWd/cmG/gKlO27pCH71eNOHPvwvKNO5JysRjcnA5XSpzea1JuMmph7RqIhiM5umNszhyDIfscPa 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 2024/11/11 05:11, Hugh Dickins wrote: > Though even more elusive than before, list_del corruption has still been > seen on THP's deferred split queue. > > The idea in commit e66f3185fa04 was right, but its implementation wrong. > The context omitted an important comment just before the critical test: > "split_folio() removes folio from list on success." In ignoring that > comment, when a THP split succeeded, the code went on to release the > preceding safe folio, preserving instead an irrelevant (formerly head) > folio: which gives no safety because it's not on the list. Fix the logic. > > Fixes: e66f3185fa04 ("mm/thp: fix deferred split queue not partially_mapped") > Signed-off-by: Hugh Dickins Reviewed-by: Baolin Wang > --- > mm/huge_memory.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/mm/huge_memory.c b/mm/huge_memory.c > index 03fd4bc39ea1..5734d5d5060f 100644 > --- a/mm/huge_memory.c > +++ b/mm/huge_memory.c > @@ -3790,7 +3790,9 @@ static unsigned long deferred_split_scan(struct shrinker *shrink, > * in the case it was underused, then consider it used and > * don't add it back to split_queue. > */ > - if (!did_split && !folio_test_partially_mapped(folio)) { > + if (did_split) { > + ; /* folio already removed from list */ > + } else if (!folio_test_partially_mapped(folio)) { > list_del_init(&folio->_deferred_list); > removed++; > } else {