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 43EBEC67861 for ; Mon, 8 Apr 2024 09:14:04 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D37866B008C; Mon, 8 Apr 2024 05:14:03 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id CE80E6B0092; Mon, 8 Apr 2024 05:14:03 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id BFD8A6B0093; Mon, 8 Apr 2024 05:14:03 -0400 (EDT) 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 A0B3D6B008C for ; Mon, 8 Apr 2024 05:14:03 -0400 (EDT) Received: from smtpin12.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 34A4612096F for ; Mon, 8 Apr 2024 09:14:03 +0000 (UTC) X-FDA: 81985802766.12.6E7F820 Received: from out30-130.freemail.mail.aliyun.com (out30-130.freemail.mail.aliyun.com [115.124.30.130]) by imf16.hostedemail.com (Postfix) with ESMTP id CE37D18000C for ; Mon, 8 Apr 2024 09:13:59 +0000 (UTC) Authentication-Results: imf16.hostedemail.com; dkim=pass header.d=linux.alibaba.com header.s=default header.b=jDoblMof; spf=pass (imf16.hostedemail.com: domain of baolin.wang@linux.alibaba.com designates 115.124.30.130 as permitted sender) smtp.mailfrom=baolin.wang@linux.alibaba.com; dmarc=pass (policy=none) header.from=linux.alibaba.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1712567641; 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=K6qk+9ggjcNMTTz30BtXi3bL/FtbPiUNAq+6RisDvL0=; b=PUQ/stpzuHjG01zPWMHYucHRew3/2giXkk8JSZ+n7suvWPonOnk+HinBa+1W1Hi8mj5KM6 rixWvs9ivQLJS2UhA+HFjYsP/kLEEPMx82hVdIlKrqBHdn9V/WHkBgOs0eugawJe9El5xK tJ+gH2H28p+dklH6z8YWROvBEu5knXs= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1712567641; a=rsa-sha256; cv=none; b=oiDvupC0aLLNpziwTAYpNtZPSGEMAb24307BgcwfKpwkpiJjzLLHWPhnivoj/95gYoBees noFqHHpsITeVPUzaDli4cDBURbDoNWga7d3jlh5sxe6+lNUo06Q/F6SOCiIjFrXEgChCmL LdxFHDsCdOPuXp9bi19WNFAnvSsqRNE= ARC-Authentication-Results: i=1; imf16.hostedemail.com; dkim=pass header.d=linux.alibaba.com header.s=default header.b=jDoblMof; spf=pass (imf16.hostedemail.com: domain of baolin.wang@linux.alibaba.com designates 115.124.30.130 as permitted sender) smtp.mailfrom=baolin.wang@linux.alibaba.com; dmarc=pass (policy=none) header.from=linux.alibaba.com DKIM-Signature:v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.alibaba.com; s=default; t=1712567636; h=Message-ID:Date:MIME-Version:Subject:To:From:Content-Type; bh=K6qk+9ggjcNMTTz30BtXi3bL/FtbPiUNAq+6RisDvL0=; b=jDoblMofgEGUCqxGVX3vvez7k3G+uIwBAMAdP5tzMt0toCLwFy0RtRoxyVHXzs2al+T73vdlSmZhtT88gqES79KQyfswRKe5LSsGWV3N7h24WggEyjWwrKdEj68N4j8I4nSoWP8Q5CrZXJtPTBwXkjBY39i4++wgdU9yiQiLSDk= X-Alimail-AntiSpam:AC=PASS;BC=-1|-1;BR=01201311R191e4;CH=green;DM=||false|;DS=||;FP=0|-1|-1|-1|0|-1|-1|-1;HT=ay29a033018046050;MF=baolin.wang@linux.alibaba.com;NM=1;PH=DS;RN=9;SR=0;TI=SMTPD_---0W46vhRi_1712567634; Received: from 30.97.56.71(mailfrom:baolin.wang@linux.alibaba.com fp:SMTPD_---0W46vhRi_1712567634) by smtp.aliyun-inc.com; Mon, 08 Apr 2024 17:13:55 +0800 Message-ID: <8c811ea8-f4ea-4f0f-91f8-3bc798a19407@linux.alibaba.com> Date: Mon, 8 Apr 2024 17:13:53 +0800 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH 10/10] mm: page_alloc: consolidate free page accounting To: Vlastimil Babka , Johannes Weiner , Andrew Morton Cc: Mel Gorman , Zi Yan , "Huang, Ying" , David Hildenbrand , linux-mm@kvack.org, linux-kernel@vger.kernel.org References: <20240320180429.678181-1-hannes@cmpxchg.org> <20240320180429.678181-11-hannes@cmpxchg.org> <7b3b7f2e-7109-4e72-b1cf-259cb56f3629@linux.alibaba.com> From: Baolin Wang In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Rspamd-Queue-Id: CE37D18000C X-Rspam-User: X-Stat-Signature: 1n7pqtkrf4xa5oqruspg1h17mkwefnn8 X-Rspamd-Server: rspam03 X-HE-Tag: 1712567639-681612 X-HE-Meta: U2FsdGVkX19OhzPrvPoINWBoNo6PBmXGwGrytUW2zu2j8aVyZrH1HmlNyQLjJc/u18hphijorfSgohCSzk3WVhYaBen2pyAu7TEpqSjmZ7+IfDXl+SrAuugsNLlYnmkCEoTNHg3xtLh1MgMeSDv681ugnK1EKWzRZJ53sib4+TsjrnpxV7xjSSJCvIMDOPctHXAcXbHdpMnyB3xhe6DPTYC2kd9s9XA3ZP9Zqau1NWOpD23rgG1cu2m+OJiuVp6CRE2E3s+/Iyzqy7lpqtry9W2ZRFJkoPSdru/m2JS0VomlYjESO0RaHbr2Xge71/I/HldLQNxMjs6bFKryHXHeV7++EFMGgnFGqTh8IHeHqqLM0AFxuNAag8u0LLRyu2ki9Zxfi1mMxb1p64/5RAfAeGamxt5uFGx8p9pwAAgfhu6WXKCKJnsthjAlG0pBIE20kUA1nYJPQE6sKuFXzmXi97Ed10EmHbXJoZU6WNF5kVRmA1y0JaUngFqqSxEeYW1ahCTqkFH0Zy9ncofH6qJKAm7yaumXgKUEFRsBhJxbwP8OH7GPHARIYiNSCRggRgyiVXmdpoMa9LXrzpe4enpdLplM+ZIPsyCs2e/dCBMnCxI12LzYgXyEBmM+1L3qgCdzQlS6+2u/eokGIKrMDTnqVVi1KKWzhSncrqP2WX57nr4TQDVzxr9vsVO1s4Jvpkzl9rhp1cZRIOmHMINzl+UYsWWeFDDkzaumeq7wOxIz1GuowZIIZ0g6scQhj9M2P1gOmWDf1eDq20rwpAeHHLVuFH49nDniKXb0LOl7sM2CD4FJBzIKXO3pL+78h/lIIOBAUbCNRlKfDdn2hDHQeFpVI4QnjYq6WQOy0Wc6wUpS12JhPRfpc9rvDWsgmA7hesCGR5zzdxvah2dZ65EUrXsZ1/UZCK9HpuylKt2bmAH1HR8KD8+qvY17zApS4hQ+a9soLyTawVZw7i6U08rU29H 8Swqe8Kt mN1/mXPKY8EHKZKaEWuKhdwSUcxd+NaEzbRvma7Yb8sEB0GS0CvJHH9QZMUC7T2jZUSw45mSd2dozKaGALhskfPTc6vulwQYjX3tlXWiNfTlsacNJQbtlFaXdvLb/g8cNbaMBQxqaYwGE4jcFNda0s05YNhcbjeRpvsGCu7FEIeEBiauaJ9zUBCkkNMRnDLUQqTU10xXiiffgyWMG5m3o807AItPMvmLM61/2usCjRYjXPF1ubnzo01/2kDhHdTRM4+i0oS4kNIiO5BbBwg0gruVp9F20MZNqDVP+IcFhG9+rCqPbfiyr0yX7c7gyLzrP1ZjSotS4DZiAL2Me/7KO0ML1kOMJPp+rTHTO 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/4/8 15:38, Vlastimil Babka wrote: > On 4/7/24 12:19 PM, Baolin Wang wrote: >> On 2024/3/21 02:02, Johannes Weiner wrote: >>> >>> + account_freepages(page, zone, 1 << order, migratetype); >>> + >>> while (order < MAX_PAGE_ORDER) { >>> - if (compaction_capture(capc, page, order, migratetype)) { >>> - __mod_zone_freepage_state(zone, -(1 << order), >>> - migratetype); >>> + int buddy_mt = migratetype; >>> + >>> + if (compaction_capture(capc, page, order, migratetype)) >>> return; >>> - } >> >> IIUC, if the released page is captured by compaction, then the >> statistics for free pages should be correspondingly decreased, >> otherwise, there will be a slight regression for my thpcompact benchmark. >> >> thpcompact Percentage Faults Huge >> k6.9-rc2-base base + patch10 + 2 fixes >> Percentage huge-1 78.18 ( 0.00%) 71.92 ( -8.01%) >> Percentage huge-3 86.70 ( 0.00%) 86.07 ( -0.73%) >> Percentage huge-5 90.26 ( 0.00%) 78.02 ( -13.57%) >> Percentage huge-7 92.34 ( 0.00%) 78.67 ( -14.81%) >> Percentage huge-12 91.18 ( 0.00%) 81.04 ( -11.12%) >> Percentage huge-18 89.00 ( 0.00%) 79.57 ( -10.60%) >> Percentage huge-24 90.52 ( 0.00%) 80.07 ( -11.54%) >> Percentage huge-30 94.44 ( 0.00%) 96.28 ( 1.95%) >> Percentage huge-32 93.09 ( 0.00%) 99.39 ( 6.77%) >> >> I add below fix based on your fix 2, then the thpcompact Percentage >> looks good. How do you think for the fix? > > Yeah another well spotted, thanks. "slight regression" is an understatement, Thanks for helping to confirm. > this affects not just a "statistics" but very important counter > NR_FREE_PAGES which IIUC would eventually become larger than reality, make > the watermark checks false positive and result in depleted reserves etc etc. Right, agree. > Actually wondering why we're not seeing -next failures already (or maybe I > just haven't noticed). > >> diff --git a/mm/page_alloc.c b/mm/page_alloc.c >> index 8330c5c2de6b..2facf844ef84 100644 >> --- a/mm/page_alloc.c >> +++ b/mm/page_alloc.c >> @@ -805,8 +805,10 @@ static inline void __free_one_page(struct page *page, >> while (order < MAX_PAGE_ORDER) { >> int buddy_mt = migratetype; >> >> - if (compaction_capture(capc, page, order, migratetype)) >> + if (compaction_capture(capc, page, order, migratetype)) { >> + account_freepages(zone, -(1 << order), migratetype); >> return; >> + } >> >> buddy = find_buddy_page_pfn(page, pfn, order, &buddy_pfn); >> if (!buddy) >> >> With my fix, the THP percentage looks better: >> k6.9-rc2-base base + patch10 + 2 fixes + >> my fix >> Percentage huge-1 78.18 ( 0.00%) 82.83 ( 5.94%) >> Percentage huge-3 86.70 ( 0.00%) 93.47 ( 7.81%) >> Percentage huge-5 90.26 ( 0.00%) 94.73 ( 4.95%) >> Percentage huge-7 92.34 ( 0.00%) 95.22 ( 3.12%) >> Percentage huge-12 91.18 ( 0.00%) 92.40 ( 1.34%) >> Percentage huge-18 89.00 ( 0.00%) 85.39 ( -4.06%) >> Percentage huge-24 90.52 ( 0.00%) 94.70 ( 4.61%) >> Percentage huge-30 94.44 ( 0.00%) 97.00 ( 2.71%) >> Percentage huge-32 93.09 ( 0.00%) 92.87 ( -0.24%)