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 75CF7C54EBC for ; Tue, 10 Jan 2023 21:40:15 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E65E38E0002; Tue, 10 Jan 2023 16:40:14 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id E15C58E0001; Tue, 10 Jan 2023 16:40:14 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id CDDDA8E0002; Tue, 10 Jan 2023 16:40:14 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id C10768E0001 for ; Tue, 10 Jan 2023 16:40:14 -0500 (EST) Received: from smtpin18.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 8A5A81407B0 for ; Tue, 10 Jan 2023 21:40:14 +0000 (UTC) X-FDA: 80340207948.18.9A23C7F Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf28.hostedemail.com (Postfix) with ESMTP id 92BD3C0008 for ; Tue, 10 Jan 2023 21:40:12 +0000 (UTC) Authentication-Results: imf28.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=FNRC4BiO; spf=none (imf28.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=1673386813; 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=e1CeQZ2DgFjP1xZe09NucTQ1MWmAvdWc0wEK/Lislo8=; b=Xnp43j1LLq2VN+iNoBBysrT/6I23HsX9MmpKllop8l3VWkFzDwag9qn4GbNI3qSnZHO7z6 LUnDZUQDEr9cwydwyhjs850OgxEeMp9IT3Af2/UBRNfXeAIwpDeBpZ+dPgJ7ndGRQ+RxZX YCv6xulb3yxLyf8+nlAv8erjR50jvRs= ARC-Authentication-Results: i=1; imf28.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=FNRC4BiO; spf=none (imf28.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=1673386813; a=rsa-sha256; cv=none; b=bU12utIGGfsI5J7uA/yTiINNxDjxcPmhi0lC8a6QRBHlCVljtScqNUFil4mwncCUHcH0PZ L5SKqQ1UDb5By8oUnVLYL2D9ExUKDeflV7FvlhwMEJpYRS1DsrgwQbiRCAn70EI29rNmz7 P1wH6jFy9SLJdQMI7OIqYUxBjpPaI2I= 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=e1CeQZ2DgFjP1xZe09NucTQ1MWmAvdWc0wEK/Lislo8=; b=FNRC4BiOpk1zAkBDovxmqH0dTm UMZOxA6zBLXuVTQpK/ChQMVS9U7GnCUhWqGKtsLZKirjKOFktW+ItiRV7QiaR2FOE8yOQD+gibgwp Zmmx+TzfqkkzKqCzA55oVkr9sXXZ84HBFy5097PoGjih8cRG6pbouGdOODIXFBPb4aWORHicPWixC RBe1dT7442C+WjamHXUKOCPGMBRWVOxxZ5OhBksi/DPXoPsO43IZ7kY45OVZYZD2LbmLSWwJFtu9q QouvPxMAMP+DxQ6od4y8hXb5IpKVz04KH4pJRujDbXV9u5H5XaNnbJavnV5w1Xb1SZf3yVLG7xon4 mBjSiWeg==; Received: from willy by casper.infradead.org with local (Exim 4.94.2 #2 (Red Hat Linux)) id 1pFMLw-003YRq-0B; Tue, 10 Jan 2023 21:40:16 +0000 Date: Tue, 10 Jan 2023 21:40:15 +0000 From: Matthew Wilcox To: Sidhartha Kumar Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org, akpm@linux-foundation.org, songmuchun@bytedance.com, mike.kravetz@oracle.com, jhubbard@nvidia.com Subject: Re: [PATCH mm-unstable v2 8/8] mm/hugetlb: convert demote_free_huge_page to folios Message-ID: References: <20230110212821.984047-1-sidhartha.kumar@oracle.com> <20230110212821.984047-9-sidhartha.kumar@oracle.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20230110212821.984047-9-sidhartha.kumar@oracle.com> X-Rspamd-Queue-Id: 92BD3C0008 X-Stat-Signature: u5qtmiho93hz7zm5xn3btqx1g3dopcqm X-Rspam-User: X-Rspamd-Server: rspam08 X-HE-Tag: 1673386812-397221 X-HE-Meta: U2FsdGVkX1/VZ2DW6Yi8KZ3AN6w72Xx4ElWbR7JbpMFMbswE+GdDso918MdNKNsX8u1lURhTLIeX7JkRrk1QB5EfQpcraNHBr2+uDdGNOlsGXneSLRgABCG2lNaEP542kV1gejnms8TTTI8Za5ThoUeKMIcKcxV/hznUghG9FNxh7KWC+DD75NHyeGupUjZrLxJ5ch2Eaa6aSVnqFEu9hiej3Q0WvY0dkX7lINBlDqo+VqZ0RsHrH6Fwv9af2cz6f/VgkVQRlghPmSynRZsMXavMnUZbli9khAdSTZHeJer7M96TDg6ZO5LndMSC22tP6pWMDfL9Q9O0VsLa6K/k0OuRoRugXXUWMj8scGosHcCWdu4OimcIjLLm1uZ/LEZKGFd9FG2DzdrrqDX0tiKrUNvnzNBgDpgCBbZt2+aNsz1/fCZR0lsD5iKYKfRct23uYzMIWBEvpQNpvoCrmJZZQbS1ju2ilP5b8ZJQ/mqw0AynB1QZxmrGS7PBM8jV5fk+3grCMW1iXM6aKQRD3gMqz72h4ZqkOnOyybgP+NgZT/M8GEoKgXzG17EvnkGDcZl4le+uRwg6ldJJgJ/XkeP0SlGpv5CDkPnEUKvJKFg0W2m0UT7SMAMyXo55GQCuosn5mjob08yWmAlxQFT092puMc/kqAkFx5F607yvv9d4j1sLK4JdHYSKQRmEMeJ/S45GAs4lxVZlywk4Rlq3aZJhVk3vyBOavwBJXk/q1WyrsJ21JjOA0NEeg1WEe1pYYnDW6u8fW77KmvCL5EF+/BAQ1p/DwUSgOmxQYBtiib0ZvjrPzW0UIupZ1HLVZ84jIQCBewe0oY1qDhKTApEhCyDdDKgR+RoghwOk8vzGwv7pYzQ35tCn+k9gklgoYBev41zbVuoReZNI84udZS+Rw1NXug== 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: On Tue, Jan 10, 2023 at 03:28:21PM -0600, Sidhartha Kumar wrote: > @@ -3505,6 +3505,7 @@ static int demote_pool_huge_page(struct hstate *h, nodemask_t *nodes_allowed) > { > int nr_nodes, node; > struct page *page; > + struct folio *folio; > > lockdep_assert_held(&hugetlb_lock); > > @@ -3518,8 +3519,8 @@ static int demote_pool_huge_page(struct hstate *h, nodemask_t *nodes_allowed) > list_for_each_entry(page, &h->hugepage_freelists[node], lru) { > if (PageHWPoison(page)) > continue; > - > - return demote_free_huge_page(h, page); > + folio = page_folio(page); > + return demote_free_hugetlb_folio(h, folio); > } > } Can't this be list_for_each_entry(folio, &h->hugepage_freelists[node], lru) which avoids the call to page_folio() here. I think the call to PageHWPoison is actually wrong here. That would only check the hwpoison bit on the first page, whereas we want to know about the hwpoison bit on any page (don't we?) So this should be folio_test_has_hwpoisoned()? Or is that a THP-thing that is different for hugetlb pages?