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 B68CCC36010 for ; Tue, 1 Apr 2025 18:09:42 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 16B3C280003; Tue, 1 Apr 2025 14:09:41 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 0F60F280001; Tue, 1 Apr 2025 14:09:41 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id EAECD280003; Tue, 1 Apr 2025 14:09:40 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id C9E2F280001 for ; Tue, 1 Apr 2025 14:09:40 -0400 (EDT) Received: from smtpin12.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 6CF0DAAA50 for ; Tue, 1 Apr 2025 18:09:41 +0000 (UTC) X-FDA: 83286262962.12.68DE71E Received: from mail-pj1-f43.google.com (mail-pj1-f43.google.com [209.85.216.43]) by imf25.hostedemail.com (Postfix) with ESMTP id 93C37A0010 for ; Tue, 1 Apr 2025 18:09:39 +0000 (UTC) Authentication-Results: imf25.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=XmNBja4T; spf=pass (imf25.hostedemail.com: domain of vishal.moola@gmail.com designates 209.85.216.43 as permitted sender) smtp.mailfrom=vishal.moola@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1743530979; 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=L3d1znKqMC7VOlS2a3pEGw5g/7whO3ATqwDLPzCjVS4=; b=kbGM6nwdtYLFljWx4ohpoi2XUf4crsXnRdmTXjCTLZhhJ6ZZxaP1l+yurffkqixOZUfvyv iKlJ8OsQmVOS+3A47M/Kpyvyma0UIAZS8pwe3Jd0bTgf53BdPcWrcto+QWi6IO/Yqf2Vuq 5A/TGnhcwi+H/H0Te6PqYhQDtIu6D94= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1743530979; a=rsa-sha256; cv=none; b=8noloZieVX67CpFialQY3GlBKS2z8nD71T1HCmrk8U6DXDxu5hSLFCAPo8Hn5e+dJSbwf7 9o+54PyavBELy8syE3En3+Nqz0bOpNNa2ycf6d8XYymAiQp/x6aQlxdYjA6iDosdh5bfh3 qXv/nU++I5QdoZnWthZCjGc1EbaVVgY= ARC-Authentication-Results: i=1; imf25.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=XmNBja4T; spf=pass (imf25.hostedemail.com: domain of vishal.moola@gmail.com designates 209.85.216.43 as permitted sender) smtp.mailfrom=vishal.moola@gmail.com; dmarc=pass (policy=none) header.from=gmail.com Received: by mail-pj1-f43.google.com with SMTP id 98e67ed59e1d1-3015001f862so7731877a91.3 for ; Tue, 01 Apr 2025 11:09:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1743530978; x=1744135778; darn=kvack.org; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date:from:to :cc:subject:date:message-id:reply-to; bh=L3d1znKqMC7VOlS2a3pEGw5g/7whO3ATqwDLPzCjVS4=; b=XmNBja4TNkJcPqzMAxJo59VS1E7mKj+1Na5qjNxoj7u50anZXFWL0hLrzgFJqX5T2Y e7EfZmLWYVlKRPDJOvcLI0dLjLydo2thVgHn0dJQw/m2W+ubomSS/Xw2r226WxZ1ClCV gChdQOhK5+x30AbyJuCsM7IAho71/F7ShAUFNoYZr4D4hxb4a+PaLucAiky82JO/+IOD I+yYwsb/RfsNnUjFKzdsNoEP0aQD0lNJXeVdFzO9MfBliVKODdbw+C2f3oT0diERD3LI XMFu5nQGj63k8oQH9rB5MD7HiOJ5RAUgJLdYFzc0uDWr8NCPyi37Js61nAMAhZkVXoqM GHOg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743530978; x=1744135778; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=L3d1znKqMC7VOlS2a3pEGw5g/7whO3ATqwDLPzCjVS4=; b=uDaj3RnmJU6TuzJs7IxYQ5SlMxgnpWPG15ytb5KZHECEg7AJBjsQbSuMrghWwbbohO xuR1P/nbSZZLkMuhf5IwJek1kmzyLBrB9oc5k1I0l0qkToQVouu/ILPx6j8h756hT9qm d2kVx4b4wpoMLVV9kILguTEtlLPA6JaA5dFXukXW/LyNViOxhYZ2hmGvCA9KfEqc2y9I DZP7Lqn9l0QusF/WKjigrvCJWRsNshE60DDU07HMvk57qCXd9sbd3QT7HXgNVVX6FiK7 ndeGj6gN4gYX2tQ2YRB/MtwJ/YaSBJGen64RqpRrOGoqgL/UzIXG2lJ2wO2mJuFv+4Bj 7nRg== X-Gm-Message-State: AOJu0YwRL2d+XeNZvQz4/ususX2cpqupudT3nLiXtSgrB0/+MGurVebR QgDjiqh5nAHbHwqDlf+nBGUn7Zl52gWVbjgOw+yWn5soeQddB1d/ X-Gm-Gg: ASbGnctIRHf52QY0GcyibAnDOicBHEYtRxYFcr3fgWaKu6ICJOXiCpLfXRUIjpjyf6L rBqJq9ziy6DhmN13kYqIb4NMZYZTqGs1/Kzz6jHrH6LdLmtIYQCkGu6ND0pZhBnC1uuAKifhGcK chLb0bmOClYOuBCk9IJltjyCpyJ919f341JkBfMTwaP7KIG3ZHMZN/a5UgLIakgpNZrUq0g5lBx anPTbHTeot6Y0Wd0flbPklajbb4u23Ci7dLXc/sg0GcSNI4IUL5nJRozIszpFvpmUgPfdWilg9p E5Qs/y/cNGjtxpzsbWSU1evwdrSA/YlOcvrk3Ru0AKKc1mNMZWOJL19OHqEWT6oK/fhRSXKvzQq j X-Google-Smtp-Source: AGHT+IFoWcXlJ2Y2kt5E6hphyINvqSYZoaxpblol2GK31vLmIEJl4Bw3fjiMfbEvKXqLDdPFLWSWYA== X-Received: by 2002:a17:90b:384d:b0:2ff:7b28:a519 with SMTP id 98e67ed59e1d1-30532158ee8mr19492718a91.30.1743530978404; Tue, 01 Apr 2025 11:09:38 -0700 (PDT) Received: from fedora (c-67-164-59-41.hsd1.ca.comcast.net. [67.164.59.41]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-30516d55fbasm9696288a91.15.2025.04.01.11.09.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 01 Apr 2025 11:09:37 -0700 (PDT) Date: Tue, 1 Apr 2025 11:09:35 -0700 From: "Vishal Moola (Oracle)" To: Zi Yan Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, akpm@linux-foundation.org, muchun.song@linux.dev, Miaohe Lin , Oscar Salvador Subject: Re: [PATCH] mm/compaction: Fix bug in hugetlb handling pathway Message-ID: References: <20250401021025.637333-1-vishal.moola@gmail.com> <4B989B13-EB96-4EA3-B3E4-18763941ABF3@nvidia.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <4B989B13-EB96-4EA3-B3E4-18763941ABF3@nvidia.com> X-Stat-Signature: ipco1jtdq4y6p8hdcrcqh63f9ajewdnm X-Rspam-User: X-Rspamd-Queue-Id: 93C37A0010 X-Rspamd-Server: rspam08 X-HE-Tag: 1743530979-539499 X-HE-Meta: U2FsdGVkX19tt6kf4kxT4KzZFatTdcKQq/ZN3zDx4PZvSwir3ujhyafk/RmpkiPU8NKlRJ5WmgzujTfflH/CcsY8dio3w30GjVjXoeYtInmpXDbRd9hOyJdHwTiQBnCDyYi3W+BL2b9K8yqTqwQoD89sZYQO/BMC9FVbnBSfvcF+SlXUHB3NEbkjC3mXscSL4OzV/984+mOnt9Fa8U6vQzflPH07feZ/y/Vl624DUuWC5XV8y8vT9myA8IsBwf8ppMUW5FQ0nh5AujjK3Agm1AKQc3JnuCzKH9EzVOy0saLSNYQF8DKdIoJdWpDMnhkV4f24RKVawOpnpqUqS95DjnKl5EuDNPngaezJM+IeMnScg+G8K/Nm9bf8LPwt8EEd0X+dXvrDHFupjV1VRpfj7TYEZLn5lrHnUIATbpr3MXEKzVDhqyLpEX+MZrtxPR3Ar70TDbnolb5IMjbYloIVru1hfovC2UDLaLg9+kXZOWwh8y9n58t32GtSsdXhMz+ptGJg8ycF92InUJYlfkGoED8mgwoKpNq7gmMH9mBGuQxqxdPbbi/bGp3rfJIPPs9vmp2FjipAp2Kbn5yY1Ji2B51SxrhA+bvlJiXwo0aDkRy5rpBV8HqlPbYV6uXOh9pvKEwAwNTIgvCp6H0zrYHN5vG/1N1BAhUfNKPbu/eYtdlfZw9gJ1ncpTfX8WmWGG3cGiEYMzggnvvydpErkCD9XwsNzF7nhjQwVkLRTFXMKspLeGGl3nmSGb6YzMSfY1qEENTic5NIWmYCV43hb/zG079IQNjEQ8ZzEwiZsgdyGS9KmqdotEVtazxMQG7YnOYogqfDwSDxluLIwVgHu7YtYQFQuIH2ZLP0hEywvlLTWy3hFSxjspW0Z74AXIAxEm2twp+tSz+6R0/d2B0UoWr92qv0zHvJtOj2PKOLWF3mGR1pxr4aoAviPkG8yR1n7lUYuIiRXXtuUzGyuKE53NK 8Wd6cg1x zHKA7sHYuo+JGaZI1lI3eSaaRtjqFrncsemWtBJmoveJDkixCUr9ImXYgfSZiJQmxhTRn9OADApEZp3k0z7qa1VdITiuhHNUGySdYO8Dj8ZiKTxe66kT8+tRcdH6Lpa0TlEPnSdTfIgz1oSlSf24grBIfiC/DknOD4jXf7zu2tMSLaKePcu1umih8cC51umZhTQaLpxmNBbbsOkxjOh0HPHZ7fOIR3r3vRYOvv9w5UIWJrMOawgRpXKkpWAvR8b4r4DWAUU1shMnYzM/rpeXX7FLKG6nNKqRStSoiGn7HPzbCTVxIwUYYVvj8JaHgC9wGVw9DypI6kaN5BHdqIt7xmpyCk05SV6Ys2eXpyC7Hqwu8tVRs0Xul88FlxwsVun1brJdxGL9QA8hbqRmEwkqDRdoxladgln1LWyUJAx6Bx95vLPtk+8AtDqUgjOKFg6ykm4yKKreX/mUghTnd9P2gp8rfA53cQ9fxFANunz81SIfCadyt4Y6DzHBT+8K8Ctf3/qidKZDVJYMH9EA= 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 Tue, Apr 01, 2025 at 11:20:48AM -0400, Zi Yan wrote: > On 31 Mar 2025, at 22:10, Vishal Moola (Oracle) wrote: > > > The compaction code doesn't take references on pages until we're certain > > we should attempt to handle it. > > > > In the hugetlb case, isolate_or_dissolve_huge_page() may return -EBUSY > > without taking a reference to the folio associated with our pfn. If our > > folio's refcount drops to 0, compound_nr() becomes unpredictable, making > > low_pfn and nr_scanned unreliable. > > The user-visible effect is minimal - this should rarely happen (if ever). > > > > Fix this by storing the folio statistics earlier on the stack (just like > > the THP and Buddy cases). > > > > Also revert commit 66fe1cf7f581 ("mm: compaction: use helper compound_nr > > in isolate_migratepages_block") > > to make backporting easier. > > > > Fixes: 369fa227c219 ("mm: make alloc_contig_range handle free hugetlb pages") > > Cc: Miaohe Lin > > Cc: Oscar Salvador > > Signed-off-by: Vishal Moola (Oracle) > > --- > > mm/compaction.c | 6 +++--- > > 1 file changed, 3 insertions(+), 3 deletions(-) > > > > > > > @@ -1011,8 +1011,8 @@ isolate_migratepages_block(struct compact_control *cc, unsigned long low_pfn, > > /* Do not report -EBUSY down the chain */ > > if (ret == -EBUSY) > > ret = 0; > > - low_pfn += compound_nr(page) - 1; > > - nr_scanned += compound_nr(page) - 1; > > + low_pfn += (1UL << order) - 1; > > + nr_scanned += (1UL << order) - 1; > > goto isolate_fail; > > } > > > > Right after this, there is “low_pfn += folio_nr_pages(folio) - 1” for > isolated hugetlb. I wonder if that can use order as well. Maybe not, > since the order is obtained without taking a reference, but folio_nr_pages() > is called with a reference. They might be different. I thought about that as well. There's a very unlikely case where they could be different: We had a hugetlb page, free'd it, then allocated it to another hugetlb page. At this point (the success path) we would want the rest of the compaction counters all the sync up to whichever folio we ended up isolating anyways. > Anyway, Reviewed-by: Zi Yan Thanks! > > Best Regards, > Yan, Zi