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 7F1C6C48BC3 for ; Wed, 21 Feb 2024 02:20:21 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 0286A6B0081; Tue, 20 Feb 2024 21:20:21 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id F1A4F6B0087; Tue, 20 Feb 2024 21:20:20 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id E08F26B0088; Tue, 20 Feb 2024 21:20:20 -0500 (EST) 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 D07316B0081 for ; Tue, 20 Feb 2024 21:20:20 -0500 (EST) Received: from smtpin21.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 796B31C051B for ; Wed, 21 Feb 2024 02:20:20 +0000 (UTC) X-FDA: 81814206600.21.76A98C9 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf17.hostedemail.com (Postfix) with ESMTP id EA6674000B for ; Wed, 21 Feb 2024 02:20:18 +0000 (UTC) Authentication-Results: imf17.hostedemail.com; dkim=none; dmarc=none; spf=pass (imf17.hostedemail.com: domain of "SRS0=35Ku=J6=goodmis.org=rostedt@kernel.org" designates 139.178.84.217 as permitted sender) smtp.mailfrom="SRS0=35Ku=J6=goodmis.org=rostedt@kernel.org" ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1708482019; 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; bh=YylLy8FTDwB7ORVbYiliH4Na3C7Qh6Bsy9IjDlImSmk=; b=ysTDre0XzRY8uQxmxKAW4ttNTw6hYziNLZ/oWicv12jiygze6sRgFUmgt45NBxt6Kh7Cgq 4LXSQydkF0y7h8ilGgoI62LtCfB/8nljjeZ3ExfZaeT9N5ABo/qXl9wBVKXnTfNn0vTlq2 7jyO97VPKH+JvWUnhpzOPF4g9RUOXhk= ARC-Authentication-Results: i=1; imf17.hostedemail.com; dkim=none; dmarc=none; spf=pass (imf17.hostedemail.com: domain of "SRS0=35Ku=J6=goodmis.org=rostedt@kernel.org" designates 139.178.84.217 as permitted sender) smtp.mailfrom="SRS0=35Ku=J6=goodmis.org=rostedt@kernel.org" ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1708482019; a=rsa-sha256; cv=none; b=2HQipPPOVWoE4ZV7q8qnBoHlrA+CB+YTcCxihX3gztsRb2dWiXeEnw2TDH8DxH7A8mdZnh kapCz+/A5MuN2ElkJlmAH0Re+TrZeFJJu7aJYO1R1Qs+RAKODaChJgmpnOAuWF3b/WpvOd OvauVZKlJaj3OQ+Ny786zAXE9Tg+x/E= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by dfw.source.kernel.org (Postfix) with ESMTP id 2B60F612D0; Wed, 21 Feb 2024 02:20:18 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id D3A91C433F1; Wed, 21 Feb 2024 02:20:16 +0000 (UTC) Date: Tue, 20 Feb 2024 21:22:02 -0500 From: Steven Rostedt To: Bixuan Cui Cc: akpm@linux-foundation.org, mhiramat@kernel.org, mathieu.desnoyers@efficios.com, linux-kernel@vger.kernel.org, linux-trace-kernel@vger.kernel.org, linux-mm@kvack.org, opensource.kernel@vivo.com Subject: Re: [PATCH -next v6 0/2] Make memory reclamation measurable Message-ID: <20240220212202.59ddc123@gandalf.local.home> In-Reply-To: References: <20240105013607.2868-1-cuibixuan@vivo.com> X-Mailer: Claws Mail 3.19.1 (GTK+ 2.24.33; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Rspam-User: X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: EA6674000B X-Stat-Signature: t9np8x4f6oagpzwexjr63e6ybnbrt4xg X-HE-Tag: 1708482018-277959 X-HE-Meta: U2FsdGVkX19BQJnXDVn/UIh+Q8lwqT413xBFl8tq2Ve1aR9f5lcDZd2StqXBj1E/T6o/rJHKP1d2/PzOTv7sUDF22d7VlEZzjWif7oyAj8nk66L1HPdUJEHAZ6iD+K6Rgp427QWGLCkC4Nhcyjtuoa69128CQq1F888YQY/UcrEjuNJMPB02QmEmo95gzr6n/lEByO/KcMkdUMnY/ivDtXSTQUWVRKP//YAXsrGxU/6RkjsC1dY/LFSBcrBgf0Jt79sxZuKl3cHVBrBbqCu6WZr/3JQ74zvwg60Nn3KTGQ+psJdH5oR6SETraozMAd3gt637gWcE3DD6BiY5kHG2uQXDWUw1Hm/YFL8fTP8GO/lXuZnOkfRH7eVOD9uLBgzs1wKTxYzIng31HIuFVeVXIfdMHCPB3UczaR+kXOoe+7U22E1CD1s00x3DS07MUrr4XsDaCNoeuyp43rS4KhYoG6rCJzRp+LrBkkHI9SRt0lADuERXmG5Xdec61x4hXEgAi0iL6glqQ4UkNBmOfbA3f4RHwFCPhvtN0jICESUsYELZtA6L5AIMdKYcsvH4gSklEjuI6XQ1NmVb4s2GjA6cJaLlvVBmX4cZakB+3ZbZ2C3pO+wkVeBnNGUSSE2ZV3tC+dtZGE0ODe+NLeKjyfLdFTv/JkqbFcR/fU4K8b8857vlXTUeykLojbdYwpFcWBQySDSifhFj3mUTGNdkip1QcalYvLk93Znnq+B64cVZuBd3OwpSNc0scT73XXnQlyOXAXH3tNWd6HpLFHJrAukn77Xij+TPA7KabG0kriXiNyR5CMsHuSGWcUtMLoypoYeAkF2P0qZ05SiBIiX+JwB04T8I73DnecT09BOJ8bSF6DPCuUz7qv/6onpbb5LSz7uKoDRZZ6Mi87YWSFRuOsvSVkKzdslao8ueVwjB7NhoNRC+N91xPk+SCXK5lykSG20D 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 Wed, 21 Feb 2024 09:44:32 +0800 Bixuan Cui wrote: > ping~ >=20 It's up to the memory management folks to decide on this. -- Steve > =E5=9C=A8 2024/1/5 9:36, Bixuan Cui =E5=86=99=E9=81=93: > > When the system memory is low, kswapd reclaims the memory. The key steps > > of memory reclamation include > > 1.shrink_lruvec > > * shrink_active_list, moves folios from the active LRU to the inacti= ve LRU > > * shrink_inactive_list, shrink lru from inactive LRU list > > 2.shrink_slab > > * shrinker->count_objects(), calculates the freeable memory > > * shrinker->scan_objects(), reclaims the slab memory > >=20 > > The existing tracers in the vmscan are as follows: > >=20 > > --do_try_to_free_pages > > --shrink_zones > > --trace_mm_vmscan_node_reclaim_begin (tracer) > > --shrink_node > > --shrink_node_memcgs > > --trace_mm_vmscan_memcg_shrink_begin (tracer) > > --shrink_lruvec > > --shrink_list > > --shrink_active_list > > --trace_mm_vmscan_lru_shrink_active (tracer) > > --shrink_inactive_list > > --trace_mm_vmscan_lru_shrink_inactive (tracer) > > --shrink_active_list > > --shrink_slab > > --do_shrink_slab > > --shrinker->count_objects() > > --trace_mm_shrink_slab_start (tracer) > > --shrinker->scan_objects() > > --trace_mm_shrink_slab_end (tracer) > > --trace_mm_vmscan_memcg_shrink_end (tracer) > > --trace_mm_vmscan_node_reclaim_end (tracer) > >=20 > > If we get the duration and quantity of shrink lru and slab, > > then we can measure the memory recycling, as follows > >=20 > > Measuring memory reclamation with bpf: > > LRU FILE: > > CPU COMM ShrinkActive(us) ShrinkInactive(us) Reclaim(page) > > 7 kswapd0 26 51 32 > > 7 kswapd0 52 47 13 > > SLAB: > > CPU COMM OBJ_NAME Count_Dur(us) Freeable(page) Scan_Dur(us) Reclaim= (page) > > 1 kswapd0 super_cache_scan.cfi_jt 2 341 3225 128 > > 7 kswapd0 super_cache_scan.cfi_jt 0 2247 8524 1024 > > 7 kswapd0 super_cache_scan.cfi_jt 2367 0 0 0 > >=20 > > For this, add the new tracer to shrink_active_list/shrink_inactive_list > > and shrinker->count_objects(). > >=20 > > Changes: > > v6: * Add Reviewed-by from Steven Rostedt. > > v5: * Use 'DECLARE_EVENT_CLASS(mm_vmscan_lru_shrink_start_template' to > > replace 'RACE_EVENT(mm_vmscan_lru_shrink_inactive/active_start' > > * Add the explanation for adding new shrink lru events into 'mm: v= mscan: add new event to trace shrink lru' > > v4: Add Reviewed-by and Changlog to every patch. > > v3: Swap the positions of 'nid' and 'freeable' to prevent the hole in t= he trace event. > > v2: Modify trace_mm_vmscan_lru_shrink_inactive() in evict_folios() at t= he same time to fix build error. > >=20 > > cuibixuan (2): > > mm: shrinker: add new event to trace shrink count > > mm: vmscan: add new event to trace shrink lru > >=20 > > include/trace/events/vmscan.h | 80 ++++++++++++++++++++++++++++++++++- > > mm/shrinker.c | 4 ++ > > mm/vmscan.c | 11 +++-- > > 3 files changed, 90 insertions(+), 5 deletions(-) > > =20