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 73923E7E638 for ; Tue, 26 Sep 2023 14:15:29 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id CA8138D0005; Tue, 26 Sep 2023 10:15:28 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id C584C8D0002; Tue, 26 Sep 2023 10:15:28 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id AF9628D0005; Tue, 26 Sep 2023 10:15:28 -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 A02178D0002 for ; Tue, 26 Sep 2023 10:15:28 -0400 (EDT) Received: from smtpin19.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 6A7011A07B2 for ; Tue, 26 Sep 2023 14:15:28 +0000 (UTC) X-FDA: 81278946336.19.1AC14E3 Received: from mailout1.samsung.com (mailout1.samsung.com [203.254.224.24]) by imf02.hostedemail.com (Postfix) with ESMTP id CE75680014 for ; Tue, 26 Sep 2023 14:15:24 +0000 (UTC) Authentication-Results: imf02.hostedemail.com; dkim=pass header.d=samsung.com header.s=mail20170921 header.b=UxZEAudn; spf=pass (imf02.hostedemail.com: domain of jaewon31.kim@samsung.com designates 203.254.224.24 as permitted sender) smtp.mailfrom=jaewon31.kim@samsung.com; dmarc=pass (policy=none) header.from=samsung.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1695737725; h=from:from:sender:sender:reply-to: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=FBUxH+V46Rt0kdEMw6EgGCObFJfgZ2YOADTq9JkYl08=; b=dYaLEzVumnQIvnvhtwF/14flRJh+GRGlytkkcgk8uc6PvwKc2sqJPggFil6upRNlasf2Rw y7zMlgpeC5mZo9sEPvXJCi+F8ofM/kkARnA+WbOi9YfxZMFIqFBQzD5GiHn/Ec2FOTJMLC YLNGDGKGBSZT1oBeU+XOeljy5WeZqA4= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1695737725; a=rsa-sha256; cv=none; b=h6CyENLRi3C410gYtUR4GEAWTD6QtnpP/JNb33v6lruHU2wWs00MHP+rZlMSEqtSd+l9YD UzymdxBoLro/wttoRVow/OVZ9l9b/RRtNJuAHXTkD7G2tdXs+C2C2mW7TrEl6pr0U4A2wd WFCZlJnhMJgFgkCzJLmUlqnp/uUMM/w= ARC-Authentication-Results: i=1; imf02.hostedemail.com; dkim=pass header.d=samsung.com header.s=mail20170921 header.b=UxZEAudn; spf=pass (imf02.hostedemail.com: domain of jaewon31.kim@samsung.com designates 203.254.224.24 as permitted sender) smtp.mailfrom=jaewon31.kim@samsung.com; dmarc=pass (policy=none) header.from=samsung.com Received: from epcas1p2.samsung.com (unknown [182.195.41.46]) by mailout1.samsung.com (KnoxPortal) with ESMTP id 20230926141520epoutp01c6f048e0de6823f3a88b77006b4e3962~IeHkHYKW92606626066epoutp01G for ; Tue, 26 Sep 2023 14:15:20 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout1.samsung.com 20230926141520epoutp01c6f048e0de6823f3a88b77006b4e3962~IeHkHYKW92606626066epoutp01G DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1695737720; bh=FBUxH+V46Rt0kdEMw6EgGCObFJfgZ2YOADTq9JkYl08=; h=Subject:Reply-To:From:To:CC:In-Reply-To:Date:References:From; b=UxZEAudnSnwb1SMPkkfhWnGUBwjqSCGvDYqWRHjXfMbP6Z6PgwIZSpfiA6FCpBKN+ yYhaBJWZFwKxo7R8P7CiIiJFTv87ZoE4IdLNxFwFR5t/C6m8+Nsb0dQY6wFtAlC0ry yml5Nrzr4QCX35IlM9rXXetvzSBQPH1Tmhj1r7ak= Received: from epsnrtp1.localdomain (unknown [182.195.42.162]) by epcas1p4.samsung.com (KnoxPortal) with ESMTP id 20230926141520epcas1p4c121852cbbd958fedb0f089680824ca6~IeHjmWet43097730977epcas1p4p; Tue, 26 Sep 2023 14:15:20 +0000 (GMT) Received: from epsmgec1p1.samsung.com (unknown [182.195.38.242]) by epsnrtp1.localdomain (Postfix) with ESMTP id 4Rw1wm08Gvz4x9Pr; Tue, 26 Sep 2023 14:15:20 +0000 (GMT) X-AuditID: b6c32a33-749fa700000021d1-45-6512e777c81b Received: from epcas1p2.samsung.com ( [182.195.41.46]) by epsmgec1p1.samsung.com (Symantec Messaging Gateway) with SMTP id 48.80.08657.777E2156; Tue, 26 Sep 2023 23:15:19 +0900 (KST) Mime-Version: 1.0 Subject: RE: [PATCH v4] vmscan: add trace events for lru_gen Reply-To: jaewon31.kim@samsung.com From: =?UTF-8?B?6rmA7J6s7JuQ?= To: Yu Zhao CC: "rostedt@goodmis.org" , "tjmercier@google.com" , "kaleshsingh@google.com" , "akpm@linux-foundation.org" , "vbabka@suse.cz" , "hannes@cmpxchg.org" , "sj@kernel.org" , "linux-kernel@vger.kernel.org" , "linux-trace-kernel@vger.kernel.org" , "linux-mm@kvack.org" , "jaewon31.kim@gmail.com" X-Priority: 3 X-Content-Kind-Code: NORMAL In-Reply-To: <20230926073333epcms1p14c9798232b395007eb20becb5dbc4b4e@epcms1p1> X-Drm-Type: N,general X-Msg-Generator: Mail X-Msg-Type: PERSONAL X-Reply-Demand: N Message-ID: <20230926141519epcms1p5b7808c768df48647516f458529e4e3c8@epcms1p5> Date: Tue, 26 Sep 2023 23:15:19 +0900 X-CMS-MailID: 20230926141519epcms1p5b7808c768df48647516f458529e4e3c8 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="utf-8" X-Sendblock-Type: SVC_REQ_APPROVE CMS-TYPE: 101P X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFtrDJsWRmVeSWpSXmKPExsWy7bCmnm75c6FUgw8fjC3mrF/DZrF6k69F 9+aZjBa9718xWTTtm8lucXnXHDaLe2v+s1ocWX+WxWJfxwMmi8Nf3zBZvFv/hc1idmMfo8W7 CV9YHXg9Dr95z+yxc9Zddo+WfbfYPRZsKvXYtKqTzWPTp0nsHidm/Gbx6NuyitHjzIIj7B6f N8kFcEVl22SkJqakFimk5iXnp2TmpdsqeQfHO8ebmhkY6hpaWpgrKeQl5qbaKrn4BOi6ZeYA 3a6kUJaYUwoUCkgsLlbSt7Mpyi8tSVXIyC8usVVKLUjJKTAr0CtOzC0uzUvXy0stsTI0MDAy BSpMyM74+mcqY8EkjYrD3X/YGxibZbsYOTkkBEwkdvzfwtLFyMUhJLCDUeL4/XesXYwcHLwC ghJ/dwiD1AgL2EhM7vjMAmILCShJnP1xhR0ibi2xf9EMJhCbTcBSYvvNiYwgtoiAvMSEl8/Y QWYyC6xnkfjx/BEjxDJeiRntT1kgbGmJ7cu3gsU5Bfwk/vdfZoaIi0rcXP2WHcZ+f2w+VK+I ROu9s1A1ghIPfu5mhJnz5/hzNgi7WGJZ5wMmCLtGYsW5VVBxc4mGtyvBbF4BX4kFs2eBzWER UJXYuLuBHeRfCQEXia2bRUDCzED3b387hxkkzCygKbF+lz7EFEWJnb/nMkKU8Em8+9rDCvPV jnlPoLaqSbQ8+woVl5H4++8ZlO0hcePpFGZIMF9mkjhw9hvTBEaFWYiQnoVk8yyEzQsYmVcx iqUWFOempyYbFhjCIzc5P3cTIzgZaxnvYLw8/5/eIUYmDsZDjBIczEoivA9vC6UK8aYkVlal FuXHF5XmpBYfYjQFenkis5Rocj4wH+SVxBuaWBqYmBmZWBhbGpspifMqTpidIiSQnliSmp2a WpBaBNPHxMEp1cAkcvqx1AadbWadHo69L1Yw79JVup1pk88s9mHORe71Oy8dWljBv/WG68el DQ+Kv/bIbXnYzCRWNf3hcQdn+SnL5buCVH18Z1T6eV+y2/9q9tWYv2vn73FVUJlmxP03ZOuN cpdnQre8D7u8abL7eSB4PpuIjdmp01M1pFpn9af8eOX5SOre/eYVnHXTuC8/9/9z2Dly0ixt 6SsLrtT4/18l1eXdL/quf3mbd6F86PY7MdfsBMRmfv1X1vz/0/eDSYFNGU/VHfKne1ZfZq1P C9828+bV2XsEu/IjGPzPT0naaDH1qeoFI8uwPyyxs1VO+Gnvu3YslUX0133BbIu1O84WnWzQ N9VeLWFpsaZMcmKTEktxRqKhFnNRcSIAlekjgE8EAAA= DLP-Filter: Pass X-CFilter-Loop: Reflected X-CMS-RootMailID: 20230926042019epcas1p11c28533f7b7db99db9f9d8a03ddd332c References: <20230926073333epcms1p14c9798232b395007eb20becb5dbc4b4e@epcms1p1> <20230926051035epcms1p312b531bba2c17bb763b6f046a45c86da@epcms1p3> <20230926042250.6028-1-jaewon31.kim@samsung.com> X-Rspamd-Queue-Id: CE75680014 X-Rspam-User: X-Stat-Signature: h945ufrdzsjya55ss9jydk6ymbb6bau1 X-Rspamd-Server: rspam03 X-HE-Tag: 1695737724-277638 X-HE-Meta: U2FsdGVkX18SI0q2rd5MVDpUeUqvF6JidOKplu47Q3lyBaWr4hYuX6uLv/P1N4KhvfkIXJdunhLaWFkuDwQ7hz1oQ93DQHdQ6ItL5DNiSdoMamtxYfVZYTwhgPE5Rg1aDHQ1rCDfx3y2Yt1Mkp0vj6payHS3i0PieVBuONRSNW52krzOGHWJW4XRKQuqYfabigc9B7toSjOG1Mq4fdj1LEWdQKGGIwslYYdHhrjaIiLx3x5ObVoiCZA7PQkUqHgSubACyFDso2gfNJQUztfuNYVrbVYMMNuIm215smvyrZs+xxHY30kgMd0o70YWZLGr/ENpG0E9tnZQuhjIVgWTWF5odXnKconkSx+vlrVn9gx8LPaov4qaTXPu5Z2kHL16emjO3tDEEW5/FsG5luFyjoyhGDytsJIyyyQd0o3HIXXE/YcRsg2FLu5jBLk4/qbc4f2jH97UrGmpVwhwdFgc4glL6HvPG3SVoSEkltjFVGGgVxO9S+6sGvXfW3sz8jOmW3R/W6AJ9ZeYlaPm2UckZi3r2qh+/atm+QCWgOcb2WuaZEVE7JBrqgHOgf8cGmFxp5lNH6zJKtmOTMpBh4Hkvab9UMN2MAej+o5KRPE29r66D6m+k/WjRJN9ydrdqfEx0g0xUs/aH6rkUyuIrJESssGe/cyrVFqmTk/YKkJek0eaxBZy61GkFreOVzQc18vx5jF8guOramUFG5fbDJYasMt6vtd+M0XP9OF7c/D6lh7wgMdNWi8i5evqLZ4Tsd2/6FS8rRdFix3281G2NoGH+6w0gnYb7lgtosLZTDYYxoz4ykJON8WL9GQuGD6b+aMveu1ZsigG4dpS8QcBwc6Pw28goACxU8Lr6np0Ch1PWyKT8/X5Wjd0ZLGFVWN94OPYwhqsnF/C168DzYmNjLCkaq8HvY8GtfVSWrmff+8V8bazGXhGtZs4CXnWu+Cz+Cs0yO45/wXuwJUoz12KjoJ DOaKnFnG 0YgGuQPJbVwJGmCvWv10sieXNvqF/4NeztDRS9M0GLYWh49ENTLLhrNXmZj9DXreF7nkRygpAGB7nwszkAc8kQfHLGv4b1mY/FJyj0G9BoNcdsUJvuFrWwPf73Zx0zCOMdbg4oeXHDLQE/KQycge3gSU1+9hQ1tv9ZRP7kJC+lxS0zejSkYK1x9FbAYFHrnwLRR5pheNLvyF+GnmN1PFxiFH49D7I16QY/ig28Lo6hG2tDh2tSx5nGGUwIs1ETDN2ADBI5E9UM5DcXLX03khN7iPGN09DgQNS3sf8+Z1bML8EZ0B5u3UafiY4PHBUUyZkRKTKisXQAeAWIWVAkjeqn5kEkwpOyf+6Fwl/XYUw7JA6vtY94yMJlDb7aYhl+DKIyzax 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 Mon, Sep 25, 2023 at 10:20?PM Jaewon Kim wrote: >>>> >>>> As the legacy lru provides, the lru_gen needs some trace events for >>>> debugging. >>>> >>>> This commit introduces 2 trace events. >>>> trace_mm_vmscan_lru_gen_scan >>>> trace_mm_vmscan_lru_gen_evict >>>> >>>> Each event is similar to the following legacy events. >>>> trace_mm_vmscan_lru_isolate, >>>> trace_mm_vmscan_lru_shrink_[in]active >>> >>>We should just reuse trace_mm_vmscan_lru_isolate and >>>trace_mm_vmscan_lru_shrink_inactive instead of adding new tracepoints. >>> >>>To reuse trace_mm_vmscan_lru_isolate, we'd just need to append two new >>>names to LRU_NAMES. >>> >>>The naming of trace_mm_vmscan_lru_shrink_inactive might seem confusing >>>but it's how MGLRU maintains the compatibility, e.g., the existing >>>active/inactive counters in /proc/vmstat. >> >> >>Hello >> >>Actually I had tried to reuse them. But some value was not that compatible. >>Let me try that way again. >> >>> > >Hello Yu Zhao > >Could you look into what I tried below? I reused the legacy trace events as you recommened. > >For the nr_scanned for trace_mm_vmscan_lru_shrink_inactive, I just used the scanned returned from isolate_folios. >I thought this is right as scan_folios also uses its isolated. > __count_vm_events(PGSCAN_ANON + type, isolated); >But I guess the scanned in scan_folios is actually the one used in shrink_inactive_list please ignore nr_scanned thing above I just misread the code. This is an example, I think it works well. mm_vmscan_lru_isolate: isolate_mode=0 classzone=2 order=0 nr_requested=4096 nr_scanned=64 nr_skipped=0 nr_taken=64 lru=inactive_file mm_vmscan_lru_shrink_inactive: nid=0 nr_scanned=64 nr_reclaimed=63 nr_dirty=0 nr_writeback=0 nr_congested=0 nr_immediate=0 nr_activate_anon=0 nr_activate_file=1 nr_ref_keep=0 nr_unmap_fail=0 priority=2 flags=RECLAIM_WB_FILE|RECLAIM_WB_ASYNC > >I tested this on both 0 and 7 of /sys/kernel/mm/lru_gen/enabled > > >diff --git a/mm/vmscan.c b/mm/vmscan.c >index a4e44f1c97c1..b61a0156559c 100644 >--- a/mm/vmscan.c >+++ b/mm/vmscan.c >@@ -4328,6 +4328,7 @@ static int scan_folios(struct lruvec *lruvec, struct scan_control *sc, > int sorted = 0; > int scanned = 0; > int isolated = 0; >+ int skipped = 0; > int remaining = MAX_LRU_BATCH; > struct lru_gen_folio *lrugen = &lruvec->lrugen; > struct mem_cgroup *memcg = lruvec_memcg(lruvec); >@@ -4341,7 +4342,7 @@ static int scan_folios(struct lruvec *lruvec, struct scan_control *sc, > > for (i = MAX_NR_ZONES; i > 0; i--) { > LIST_HEAD(moved); >- int skipped = 0; >+ int skipped_zone = 0; > int zone = (sc->reclaim_idx + i) % MAX_NR_ZONES; > struct list_head *head = &lrugen->folios[gen][type][zone]; > >@@ -4363,16 +4364,17 @@ static int scan_folios(struct lruvec *lruvec, struct scan_control *sc, > isolated += delta; > } else { > list_move(&folio->lru, &moved); >- skipped += delta; >+ skipped_zone += delta; > } > >- if (!--remaining || max(isolated, skipped) >= MIN_LRU_BATCH) >+ if (!--remaining || max(isolated, skipped_zone) >= MIN_LRU_BATCH) > break; > } > >- if (skipped) { >+ if (skipped_zone) { > list_splice(&moved, head); >- __count_zid_vm_events(PGSCAN_SKIP, zone, skipped); >+ __count_zid_vm_events(PGSCAN_SKIP, zone, skipped_zone); >+ skipped += skipped_zone; > } > > if (!remaining || isolated >= MIN_LRU_BATCH) >@@ -4387,6 +4389,9 @@ static int scan_folios(struct lruvec *lruvec, struct scan_control *sc, > __count_memcg_events(memcg, item, isolated); > __count_memcg_events(memcg, PGREFILL, sorted); > __count_vm_events(PGSCAN_ANON + type, isolated); >+ trace_mm_vmscan_lru_isolate(sc->reclaim_idx, sc->order, MAX_LRU_BATCH, >+ scanned, skipped, isolated, >+ type ? LRU_INACTIVE_FILE : LRU_INACTIVE_ANON); > > /* > * There might not be eligible folios due to reclaim_idx. Check the >@@ -4517,6 +4522,9 @@ static int evict_folios(struct lruvec *lruvec, struct scan_control *sc, int swap > retry: > reclaimed = shrink_folio_list(&list, pgdat, sc, &stat, false); > sc->nr_reclaimed += reclaimed; >+ trace_mm_vmscan_lru_shrink_inactive(pgdat->node_id, >+ scanned, reclaimed, &stat, sc->priority, >+ type ? LRU_INACTIVE_FILE : LRU_INACTIVE_ANON); > > list_for_each_entry_safe_reverse(folio, next, &list, lru) { > if (!folio_evictable(folio)) { >