From patchwork Wed May 8 09:55:38 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chengming Zhou X-Patchwork-Id: 13658360 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 0DF7EC04FFE for ; Wed, 8 May 2024 09:56:28 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 926146B010D; Wed, 8 May 2024 05:56:27 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 8D5D26B010F; Wed, 8 May 2024 05:56:27 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 777EF6B0110; Wed, 8 May 2024 05:56:27 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 581076B010D for ; Wed, 8 May 2024 05:56:27 -0400 (EDT) Received: from smtpin19.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 00D3A121430 for ; Wed, 8 May 2024 09:56:26 +0000 (UTC) X-FDA: 82094773614.19.0BCF0C1 Received: from out-184.mta1.migadu.com (out-184.mta1.migadu.com [95.215.58.184]) by imf06.hostedemail.com (Postfix) with ESMTP id 27F3D180007 for ; Wed, 8 May 2024 09:56:24 +0000 (UTC) Authentication-Results: imf06.hostedemail.com; dkim=pass header.d=linux.dev header.s=key1 header.b=C4MV5gEp; spf=pass (imf06.hostedemail.com: domain of chengming.zhou@linux.dev designates 95.215.58.184 as permitted sender) smtp.mailfrom=chengming.zhou@linux.dev; dmarc=pass (policy=none) header.from=linux.dev ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1715162185; 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=kkuupc/bTWDBM/qgtKXvWiw928oiixEs1ZTUcK3CiX4=; b=Hd2qRXinjTCRCO76VKRDP4vqMJCLHuz04y92RT97LJyh4WPg24vm7T2uYdd7g2JeCKObJY ESqbLNTmAPyId1h9RpJKw6tEaf9OWI5QxldS0ZWnhjUQFU8OHuICbevmSCVqQjVXrkjOM5 vPI9FmJk+BWVIFCA9URsx5IWJSNjku8= ARC-Authentication-Results: i=1; imf06.hostedemail.com; dkim=pass header.d=linux.dev header.s=key1 header.b=C4MV5gEp; spf=pass (imf06.hostedemail.com: domain of chengming.zhou@linux.dev designates 95.215.58.184 as permitted sender) smtp.mailfrom=chengming.zhou@linux.dev; dmarc=pass (policy=none) header.from=linux.dev ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1715162185; a=rsa-sha256; cv=none; b=D9tM6av4XKKkpcc3ctW6LQDs6ODjuPDnmTsiM5rM7AS69EbUiKWRsCPYFfbry+uEikf9dv CNIxrZXMBB67Voj+MTz8enkkRHBmQc03fTnaYp+duwowaWNHV5eNuWGQatvgubbD+mOrVR 1G9NmGgAjL3V3sAopLbVB+RLe9VHCMs= X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1715162183; h=from:from: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; bh=kkuupc/bTWDBM/qgtKXvWiw928oiixEs1ZTUcK3CiX4=; b=C4MV5gEpzMK+SjA3+P6MBs1obUWGxx4y+XHTher0dAqLtRXL2+27HAevrFHrkd1gEoHvdq MbWsBs74UJrR7m8btrI/nsWzxPm9+vpq/MJ+TFqO1TjatRLQW5jI91sxApzSnfQmrOTltl DdviWIuuyK0ImKOuOX1iDQKJ6ycJX+I= From: Chengming Zhou Date: Wed, 08 May 2024 17:55:38 +0800 Subject: [PATCH 1/4] mm/ksm: fix ksm_pages_scanned accounting MIME-Version: 1.0 Message-Id: <20240508-b4-ksm-counters-v1-1-e2a9b13f70c5@linux.dev> References: <20240508-b4-ksm-counters-v1-0-e2a9b13f70c5@linux.dev> In-Reply-To: <20240508-b4-ksm-counters-v1-0-e2a9b13f70c5@linux.dev> To: Andrew Morton , David Hildenbrand , Stefan Roesch , xu xin Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, zhouchengming@bytedance.com, Chengming Zhou X-Developer-Signature: v=1; a=ed25519-sha256; t=1715162174; l=1280; i=chengming.zhou@linux.dev; s=20240508; h=from:subject:message-id; bh=snJN4Df6DU019UCJtAmXu+NvV52neCa6WX3l+iJA2Lw=; b=sii/wcJR6QpIF+eWSdTOUi950cTGX4hLZNmHf4BI4ooy5PMU0VGDAd1Dg/mYKZpIk3WVRH171 nEXbbd5ZrOcARiEU5K4yf9CsPeKr1ytC/0lQeZAUGjvu0Qf2mIXD4M7 X-Developer-Key: i=chengming.zhou@linux.dev; a=ed25519; pk=kx40VUetZeR6MuiqrM7kPCcGakk1md0Az5qHwb6gBdU= X-Migadu-Flow: FLOW_OUT X-Stat-Signature: zwu61uff8m4iip63r58f6d6x93jp3wc3 X-Rspamd-Queue-Id: 27F3D180007 X-Rspamd-Server: rspam10 X-Rspam-User: X-HE-Tag: 1715162184-679020 X-HE-Meta: U2FsdGVkX18SkgbKgMaIJv3TMhDc16cipQi6+JPVoTdIn2lTwalsgZqRhWeBPlwK0ezqb3/wsWvCl5RqtvP4JCfq0TQt+iSBnqb4+UuKaYb5OOxaieLRdeE4MmyxjnWnHtZWIw1nwXCP8Jsf7k88yNc+GpHLeHIyUvlpnqo7J5wfwi4Zb96lu7lWC+l7Sf9o6aD1oR66xT1RPmyr8Lc1GM+sDluxpeuxEBQ1FU4GU+CSkNBxpB8S0a+pE15FkPEb4vcBAUQiUUrcQJwBVa/4lU0EeCK7QvcB0MwzvR1eiSUAJF4RuIlMYYSjup8npgDeFhRVcxHiu3/8po4shuEAFMy38OVwlwKL9NKiBORW5wxQrp4Gq0DkYoDXtPOpqCggdAfLQfDzrkoGfTWu+kTr9Rcrw8ltk1K8umwVZiTLabYf7/MI9+SaWWhrnFYBHqAV+oyS32Eul/fmLolZcaexC3v+sHsoqrHSfdEN+XYv+/hY6pCnCaJ2DnoWnzuB/tCKF+LSoNInjA+7HQhHHdoK+44hTLXuSrwaLg5KpCAu3sHwdpeW2I/yU1O+REReGkd3r6ABiCBJlHPKRRTl/cF40QWAEbChlHs6lf5/PC+FC//VzSpRJDZrCWF9CilgpMYeO/yp3nqlyVlw73o2Sz5jXMhESqx0c96S6K4ruFN68j5cf2Cf+Llk47XTUHLreUbJWraLtJ9nfDWKZIuSJE/6If5Rd2s48EZJwha5dGvXZE54qbFNulb00coMmirRNfreRb/3u5m4xlWOS+vhLWAKO5IN90MUH9DxU/Zjs7Vwf3rPRgF2TPe6Mi5BNVjV9GQ08IDccTjPRlYFnvqo6RXkIjS2uKcwGddtMHCGGiNT7QvmODJ45rkYBq2QMPaoZ6JawHU4FQeQT9pl96BpMF5xhhTi9F9Bt9kWX8OEWmCmuxH4YhKi7Fb/T3M4UswhMLENemXYJ4F4wUuwCBj1g3r 16Tg6HIZ Es7FYYoCoaBGhprVemumHWb0rHEO5J21qeDlfbs1F6zGw5x3no+Hx89u4Nra/D74B5Vt5cD5XcqQW98HcFjFnCb+bgikLJr+2LwW7Z6AXFXLI8/qJRTssQlAolZEIs9GoX7uW 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: During testing, I found ksm_pages_scanned is unchanged although the scan_get_next_rmap_item() did return valid rmap_item that is not NULL. The reason is the scan_get_next_rmap_item() will return NULL after a full scan, so ksm_do_scan() just return without accounting of the ksm_pages_scanned. Fix it by just putting ksm_pages_scanned accounting in that loop, and it will be accounted more timely if that loop would last for a long time. Signed-off-by: Chengming Zhou Acked-by: David Hildenbrand --- mm/ksm.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/mm/ksm.c b/mm/ksm.c index e1034bf1c937..0f9c491552ff 100644 --- a/mm/ksm.c +++ b/mm/ksm.c @@ -2753,18 +2753,16 @@ static void ksm_do_scan(unsigned int scan_npages) { struct ksm_rmap_item *rmap_item; struct page *page; - unsigned int npages = scan_npages; - while (npages-- && likely(!freezing(current))) { + while (scan_npages-- && likely(!freezing(current))) { cond_resched(); rmap_item = scan_get_next_rmap_item(&page); if (!rmap_item) return; cmp_and_merge_page(page, rmap_item); put_page(page); + ksm_pages_scanned++; } - - ksm_pages_scanned += scan_npages - npages; } static int ksmd_should_run(void)