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 26AF1C61DA4 for ; Wed, 15 Mar 2023 15:54:39 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 7B6E46B0071; Wed, 15 Mar 2023 11:54:38 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 766E16B0072; Wed, 15 Mar 2023 11:54:38 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 655FC6B0075; Wed, 15 Mar 2023 11:54:38 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 559256B0071 for ; Wed, 15 Mar 2023 11:54:38 -0400 (EDT) Received: from smtpin19.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 0E877A042C for ; Wed, 15 Mar 2023 15:54:38 +0000 (UTC) X-FDA: 80571580236.19.5387BAA Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29]) by imf13.hostedemail.com (Postfix) with ESMTP id EA1E62001C for ; Wed, 15 Mar 2023 15:54:33 +0000 (UTC) Authentication-Results: imf13.hostedemail.com; dkim=pass header.d=suse.cz header.s=susede2_rsa header.b=LNprHW6j; dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b=2rviSpn+; spf=pass (imf13.hostedemail.com: domain of vbabka@suse.cz designates 195.135.220.29 as permitted sender) smtp.mailfrom=vbabka@suse.cz; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1678895674; 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=0aCWIYa326RLpPY8ttk7CVUTnd7Pxqk529d3RaeNXEE=; b=7SzYP2VCOnWp7usf2K/KYBtcf8VZvUMwEuCzRu5PqPnmM3ueyUjzAxGw4VbCXXQLwZ1Sed QZRw9N3bj67iRmFZDvaTW/CYmK5fDTHybzTkYjEC112Tca6ukxS5LKahdOcSDw9YgRSzg2 zhGilys4pAbKqLSZyF4ROWU9FNq+Biw= ARC-Authentication-Results: i=1; imf13.hostedemail.com; dkim=pass header.d=suse.cz header.s=susede2_rsa header.b=LNprHW6j; dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b=2rviSpn+; spf=pass (imf13.hostedemail.com: domain of vbabka@suse.cz designates 195.135.220.29 as permitted sender) smtp.mailfrom=vbabka@suse.cz; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1678895674; a=rsa-sha256; cv=none; b=D9C+eacFdJOFLYtVbE8Dl5D4YawTaPOGDOguZgx2GzrxvdWmOMA6CYVs+HVxMKxgqqg/oc o157GadSZIoEzdzfVZiQ5BJICcuKI3IU4TkeK4f6grZgvddhx0Qjp7p/uKRAt96V7XMbMW 4aUXnKB55mv5rSu00k4M6HkEr9OyFAg= Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id 538C81FD83; Wed, 15 Mar 2023 15:54:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa; t=1678895672; h=from:from:reply-to: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; bh=0aCWIYa326RLpPY8ttk7CVUTnd7Pxqk529d3RaeNXEE=; b=LNprHW6je3Q1tHksvit1HEMnsj2ETDtXJwenQb8e4i5HOGhIKicTwAI9WzeRa2pr8gvoC6 uldV5obRZgq0u9QuavELGSxizYkwh3TEhgCB3MfOFOevzKWF/eDx0kmQlE8VL3zlSCFzJT pYLyRC9EIPRqgNYIsvEr58CO1YY/Acw= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_ed25519; t=1678895672; h=from:from:reply-to: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; bh=0aCWIYa326RLpPY8ttk7CVUTnd7Pxqk529d3RaeNXEE=; b=2rviSpn+CAaLS96h24uEf8u23NeHFc6ga7pBYDAHxab2Lc0STY63KIoGO4hiHFR8KudjCR 5f7dHuaKdjL5qmDQ== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 36ACB13A2F; Wed, 15 Mar 2023 15:54:32 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id 0B2kDDjqEWQCeAAAMHmgww (envelope-from ); Wed, 15 Mar 2023 15:54:32 +0000 Message-ID: <258932e0-a2a6-7f17-014c-05676bfad456@suse.cz> Date: Wed, 15 Mar 2023 16:54:31 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.8.0 Subject: Re: [PATCH 1/2] mm: compaction: consider the number of scanning compound pages in isolate fail path Content-Language: en-US To: Baolin Wang , akpm@linux-foundation.org Cc: mgorman@techsingularity.net, osalvador@suse.de, william.lam@bytedance.com, linux-mm@kvack.org, linux-kernel@vger.kernel.org References: <1bc1c955b03603c4e14f56dfbbef9f637f18dbbd.1678703534.git.baolin.wang@linux.alibaba.com> From: Vlastimil Babka In-Reply-To: <1bc1c955b03603c4e14f56dfbbef9f637f18dbbd.1678703534.git.baolin.wang@linux.alibaba.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Rspamd-Queue-Id: EA1E62001C X-Stat-Signature: 7jsh5bgcmrzpejzfi99ziniq7zgnswn3 X-Rspam-User: X-Rspamd-Server: rspam08 X-HE-Tag: 1678895673-48217 X-HE-Meta: U2FsdGVkX1+kJBAuzR/v+apUyNt6FHy4T3pkr13LWY4W+OvYk0G62+rv18H77Z9WrrSH3xifobmzFn8pPTbD07qRSWsGfYanbxG1d4JdMrPAyK9p++vDKrC4S2MKe/3HuLFWRz4iaFybujqhHEkPqIrOdRqt/WhaYhiiXPByj43/ubnTQnCWK10xCeRXzKjyw4a2AvLqsI5sEMLFQj4a0Rc/3yqE1g1giJuX82bP2rRbMMffFVshOaL3mhjqOAA/jlMjC0J5sgWs3QtTZNHTxDdWJmEvywX5QJzptGJFRlgMiBbLagmJknvytvH6w5qooNhoUNNJdCyGiXw+PyO+2sg72hwAg6JurZdpd9/XtPWJHi9PMiiKPaY2/3TO20ufgDFSY/Wvpu9liSKMG4GiqICuWKdibtRH+d77Pgf5Frg5hw9RmYchUxhvzBSUKVYvJAEjcC7P5j1tB+NmPs/8HGCmCvm8y8rJQK0tcaYIBA1+N96GelkkUqyOV1+paqWTu7dslDNwNSpFHbRyFgOIQb4eFAXRU+sgHZTBhN9nqhkxZbrg7aYGfOsjp+aYqJ4HFBH8kDl9eLXmXgjA5MKxRPpEA9oCb2ZHPTSTxnWJqUSTYiGbgInbanuOeLtXggoekBCLmAjTSAc33bEXv/GURTqTkQjjxaefXpkkBqP3XXhhFCz3v3YN62Nw/lx/Iel0tcrChIEvyY2CgfCkP9lC5gidi8VAfgJxrlZMxA8RrU5V5jCeo7o0PJTjZhz3me0Z2Y6OQQ7Y5sqdnnK2bVEfyO2FbHj8mmU+TW17NCTOTOIO0GXPb5+9uaMC07K9eQ81DOHPTX0mLynZak4PUKHPEu/bRHgS4FltC2DUha9703O0nzk0eKJZZQr0MpFcJilGfaBdWp0hMD7xw5CODGwoHAL22eI6MrZKCVOtEp2oyQtaT64I1Ryw12z9Yk0mJMA6NRFS6zL1dWm7Le1BaBs f1X0s5Dv 86bsRbW1fewMWtzxE5ns4CPylSbps8PGkb4sDMZElwc6FUC7AM18nFf3vhWOlALuaVFLKSBgJDsV8K42qf0BcEiYDanQuHnFbiRV9vOhXXcO0v2+PeDBdsgSphPS3wMNbEEIeHOaGC7YVTtqaVrwg+1f/6rV4ivs3lPp+7VegEzl7WSfO26YGa18EzGOyh725xTiW6Wvr3mY2jay5mI+11VqwtpRJBu94GafKqkKbyWnK8QA= 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 3/13/23 11:37, Baolin Wang wrote: > The commit b717d6b93b54 ("mm: compaction: include compound page count > for scanning in pageblock isolation") had added compound page statistics > for scanning in pageblock isolation, to make sure the number of scanned > pages are always larger than the number of isolated pages when isolating > mirgratable or free pageblock. > > However, when failed to isolate the pages when scanning the mirgratable or > free pageblock, the isolation failure path did not consider the scanning > statistics of the compound pages, which can show the incorrect number of > scanned pages in tracepoints or the vmstats to make people confusing about > the page scanning pressure in memory compaction. > > Thus we should take into account the number of scanning pages when failed > to isolate the compound pages to make the statistics accurate. > > Signed-off-by: Baolin Wang > --- > mm/compaction.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/mm/compaction.c b/mm/compaction.c > index 5a9501e0ae01..c9d9ad958e2a 100644 > --- a/mm/compaction.c > +++ b/mm/compaction.c > @@ -587,6 +587,7 @@ static unsigned long isolate_freepages_block(struct compact_control *cc, > blockpfn += (1UL << order) - 1; > cursor += (1UL << order) - 1; > } > + nr_scanned += (1UL << order) - 1; I'd rather put it in the block above that tests order < MAX_ORDER. Otherwise as the comments say, the value can be bogus as it's racy. > goto isolate_fail; > } > > @@ -873,9 +874,8 @@ isolate_migratepages_block(struct compact_control *cc, unsigned long low_pfn, > cond_resched(); > } > > - nr_scanned++; > - > page = pfn_to_page(low_pfn); > + nr_scanned += compound_nr(page); For the same reason, I'd rather leave the nr_scanned adjustment by order in the specific code blocks where we know/think we have a compound or huge page and have sanity checked the order/nr_pages, and not add an unchecked compound_nr() here. Thanks. > > /* > * Check if the pageblock has already been marked skipped. > @@ -1077,6 +1077,7 @@ isolate_migratepages_block(struct compact_control *cc, unsigned long low_pfn, > */ > if (unlikely(PageCompound(page) && !cc->alloc_contig)) { > low_pfn += compound_nr(page) - 1; > + nr_scanned += compound_nr(page) - 1; > SetPageLRU(page); > goto isolate_fail_put; > } > @@ -1097,7 +1098,6 @@ isolate_migratepages_block(struct compact_control *cc, unsigned long low_pfn, > isolate_success_no_list: > cc->nr_migratepages += compound_nr(page); > nr_isolated += compound_nr(page); > - nr_scanned += compound_nr(page) - 1; > > /* > * Avoid isolating too much unless this block is being