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 3E9E5D21262 for ; Thu, 17 Oct 2024 09:21:01 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id CB6DE6B007B; Thu, 17 Oct 2024 05:21:00 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id C66CB6B0082; Thu, 17 Oct 2024 05:21:00 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id AE0976B0083; Thu, 17 Oct 2024 05:21:00 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 8F1C36B007B for ; Thu, 17 Oct 2024 05:21:00 -0400 (EDT) Received: from smtpin10.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 05CA0141106 for ; Thu, 17 Oct 2024 09:20:49 +0000 (UTC) X-FDA: 82682549586.10.47BF8BB Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.223.131]) by imf18.hostedemail.com (Postfix) with ESMTP id B10EA1C0009 for ; Thu, 17 Oct 2024 09:20:53 +0000 (UTC) Authentication-Results: imf18.hostedemail.com; dkim=pass header.d=suse.cz header.s=susede2_rsa header.b=M02S6C3i; dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b=AavFWX7w; dkim=pass header.d=suse.cz header.s=susede2_rsa header.b=M02S6C3i; dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b=AavFWX7w; spf=pass (imf18.hostedemail.com: domain of vbabka@suse.cz designates 195.135.223.131 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=1729156810; 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=rlGcWKytSPzUfNRR42UnWi/FqU3SMgFJqScHSHZrPlk=; b=mIXwTVofFxszbXnGVXdiw43pht/SqOiksLQlZFzlXlHAbJFnqPCKmQz2EqIVyWLfmlVobF buQ66mb3rfT1+KveWtI2nHVGvGwoxJOW7B4qIQVveNviu+4/5hIrryJusaTLV6MFo3PulQ G70z0hMIZXdc7iRBkIJXQh2hrIPl+JM= ARC-Authentication-Results: i=1; imf18.hostedemail.com; dkim=pass header.d=suse.cz header.s=susede2_rsa header.b=M02S6C3i; dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b=AavFWX7w; dkim=pass header.d=suse.cz header.s=susede2_rsa header.b=M02S6C3i; dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b=AavFWX7w; spf=pass (imf18.hostedemail.com: domain of vbabka@suse.cz designates 195.135.223.131 as permitted sender) smtp.mailfrom=vbabka@suse.cz; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1729156810; a=rsa-sha256; cv=none; b=FSMYYthocWwA3n/CsoZpBi7Fftb51IsTIsaNmPXUMdvRuP0++c58mNYIWn1VyD8206VxOS nVa79Cxb73Q/UNoQe/jyLZV7xxnrfdwhA3XvOTqPUajC1DVnCFl3NYpewcwYSmIAdfzf5J W1V4RrzlVLvtGbjR10uVw8s5u77ftWg= Received: from imap1.dmz-prg2.suse.org (unknown [10.150.64.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id 1801E1FEF3; Thu, 17 Oct 2024 09:20:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa; t=1729156856; 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:autocrypt:autocrypt; bh=rlGcWKytSPzUfNRR42UnWi/FqU3SMgFJqScHSHZrPlk=; b=M02S6C3i9kxAE6zX0RojBDyoIRGv8kMmr1/KvVw0ShflgeHFaGgwdzjgnaAgk7Bk+td5eY Hzf/xOyJH6kGYvSyIoL1oGnazsvaWDibn51p671OXTsiSi/MpkgfwwhiHDS9P8PAAlYHo4 l+9vLrSH/5bplNbsryIB1fiNJtT75IE= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_ed25519; t=1729156856; 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:autocrypt:autocrypt; bh=rlGcWKytSPzUfNRR42UnWi/FqU3SMgFJqScHSHZrPlk=; b=AavFWX7wk53sH4R3rxVkt79ywXYVx9+2XEyAgImNJ1Awvj/3fJAudzCEd2zZwvv0xxGhUB KjP0EMzsLwXMkUCg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa; t=1729156856; 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:autocrypt:autocrypt; bh=rlGcWKytSPzUfNRR42UnWi/FqU3SMgFJqScHSHZrPlk=; b=M02S6C3i9kxAE6zX0RojBDyoIRGv8kMmr1/KvVw0ShflgeHFaGgwdzjgnaAgk7Bk+td5eY Hzf/xOyJH6kGYvSyIoL1oGnazsvaWDibn51p671OXTsiSi/MpkgfwwhiHDS9P8PAAlYHo4 l+9vLrSH/5bplNbsryIB1fiNJtT75IE= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_ed25519; t=1729156856; 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:autocrypt:autocrypt; bh=rlGcWKytSPzUfNRR42UnWi/FqU3SMgFJqScHSHZrPlk=; b=AavFWX7wk53sH4R3rxVkt79ywXYVx9+2XEyAgImNJ1Awvj/3fJAudzCEd2zZwvv0xxGhUB KjP0EMzsLwXMkUCg== Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 02F6313A53; Thu, 17 Oct 2024 09:20:56 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id UCccAPjWEGeZRwAAD6G6ig (envelope-from ); Thu, 17 Oct 2024 09:20:56 +0000 Message-ID: <3fba1c4f-5c22-496b-a5cb-ffa74be9fe6c@suse.cz> Date: Thu, 17 Oct 2024 11:20:55 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v2] vmscan: add a vmscan event for reclaim_pages Content-Language: en-US To: jaewon31.kim@samsung.com, "sj@kernel.org" , "minchan@kernel.org" , "kaleshsingh@google.com" , "akpm@linux-foundation.org" Cc: "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , "jaewon31.kim@gmail.com" References: <20241016132452epcms1p6884ae0197aa83731baa193fb5714b0d2@epcms1p6> From: Vlastimil Babka Autocrypt: addr=vbabka@suse.cz; keydata= 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 EP+ylKVEKb0Q2A== In-Reply-To: <20241016132452epcms1p6884ae0197aa83731baa193fb5714b0d2@epcms1p6> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspam-User: X-Stat-Signature: r9aqnczxcbno68mpeffbdsc3da1qj8jo X-Rspamd-Queue-Id: B10EA1C0009 X-Rspamd-Server: rspam11 X-HE-Tag: 1729156853-792530 X-HE-Meta: U2FsdGVkX19ci8b4eOTX/nSAfUhjANlOFqujUK8ygb9IgL25mJg5uCy/ireP6Lfj6KkxrKqpwBK6f5l0IpqAV6W0iBsWCeu/z/MQ/RwGBQh2nCRlL6h2KJxchqtMQLJNbS/CcfjbC9d3N8xGRHb1U7YDn2d9OfNhBdpPVGH1YD9STQj6nByvnedPUKGDh+Lq1ZDk71Su4SHi5agQClgI0t/P2WqJ8iYWdnSFaX/MRttKq+kliulfUkAqkN/Iw5WH66iBYoMPljl1MDvI99E22EgJUYjA0coAIshvOnwurHQZnQjESeItf2dQoJ/g4vsM7mhGhKVOufvzo7gBSgcJT7mbucTauC0Hqt1NGsAb1fcScvocvrXcPEgrN49xD3hoorePX8XqYIlo14XWcnTXnbWHOItj45eSnfVx1FJYLXn4vFEk8gIQO102RLCZHIJ8P1MaaTJezeaFQ9IS4iiXkQl9tKqvu9bWj0rkP2FXlA5ywcbIuUxHsKHGSSriHKVRbBw4CGHBZDz07DCfcXxGc4uL2R1RuYwltN8oWaPXYe1x/qqzs7TgGPnZoI6k2K0aM7kaboXMgNGVD1xc4yArWnWNNOB9zJEuKOAS5yB5Kv+RHTNkvCc/41rh4FgPgJwiHt/LcoOm9QLQCGQ4TDY3+LxzXJsuuLogA4+tCP1YCtOJU/qL0qGUyVKZHgG/JifHKdjlJo5AiGXM5YCfhNjSAX1oDdI1ZVMRfNWL5oN0CX5kIy8lBQyEBQPAlDdBy2QEgLUYDtj8bNLeYV82/4ZrKzIgtxVSTuCi1YdIOkuhNTQezDc2R8MIdq8Tz5qTbh0LG2TFaf4lzmO3BDhMjZp5bpSW3xEPNSQq1FWVePBQ5XzZJlAr6AYznWWaZCU9VOQIFi10gmJ3uhb5i/cabqgXbYTsnmXXWAwiNkhp905WGTfQbO0X6L3BrWhW0a2QmJXn4E7lNPC7a2U4XmlmOQ9 yhd5JlL6 6f11kaBFVkaypD+GlN5zDyPl8oHphZ584dLUNZ/aZb8yfmMf5xcIPD4xnUMFp263AyoK36em+KaL0l5CAXghWqRezxs8xRkPe4Sgrb/Lm5914R6vqzXwFfkG4NDGqHiyHrKIhQRsiYnvTAYiega0DwTieWUEtLHqdvq8bnmZhjF7ZaLjpQWJnKiIOFqgKgCURsSVs7eaP+V/oyjtejRcnBv5K+5MXplUUgqqNxkK66cH9DC28y9yGRjsYurLKJEwcI0sAJoQo1pod9/sNJQlYy9d6Fe2jr9deMSXXATXV0jzY1/iyf3uIsh1TBUIjjq4QEYC40bg1RPZPBgAg7LhFrLGGB+N8IPCP54HTnozIUN4VNbrx04SCLmSNj2nwnhcnPt7hHLXPiHZQbmxz9+w5IhPweiVUp2SFyx1XN4vx+iyPwM5sSHhs1qqlBIgqR45/Cy3togRGdvdl2u5g4uYYwhw4bqsy9d90F4ge+JR6WG9OcLRqFwNRDTc9hQ== 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 10/16/24 15:24, 김재원 wrote: >>On 10/11/24 14:49, Jaewon Kim wrote: >>> The reclaim_folio_list uses a dummy reclaim_stat and is not being >>> used. To know the memory stat, add a new trace event. This is useful how >>> how many pages are not reclaimed or why. >>> >>> This is an example. >>> mm_vmscan_reclaim_pages: nid=0 nr_scanned=112 nr_reclaimed=112 nr_dirty=0 nr_writeback=0 nr_congested=0 nr_immediate=0 nr_activate_anon=0 nr_activate_file=0 nr_ref_keep=0 nr_unmap_fail=0 >>> >>> Currenlty reclaim_folio_list is only called by reclaim_pages, and >>> reclaim_pages is used by damon and madvise. In the latest Android, >>> reclaim_pages is also used by shmem to reclaim all pages in a >>> address_space. >>> >>> Signed-off-by: Jaewon Kim >>> --- >>> v2: remove reclaim_stat_add function and call the trace on each node >>> v1: introduce a new trace event >>> --- >>>  include/trace/events/vmscan.h | 45 +++++++++++++++++++++++++++++++++++ >>>  mm/vmscan.c                  | 16 +++++++++---- >>>  2 files changed, 56 insertions(+), 5 deletions(-) >>> >>> diff --git a/include/trace/events/vmscan.h b/include/trace/events/vmscan.h >>> index 1a488c30afa5..490958fa10de 100644 >>> --- a/include/trace/events/vmscan.h >>> +++ b/include/trace/events/vmscan.h >>> @@ -346,6 +346,51 @@ TRACE_EVENT(mm_vmscan_write_folio, >>>                 show_reclaim_flags(__entry->reclaim_flags)) >>>  ); >>>  >>> +TRACE_EVENT(mm_vmscan_reclaim_pages, >>> + >>> +        TP_PROTO(int nid, >>> +                unsigned long nr_scanned, unsigned long nr_reclaimed, >>> +                struct reclaim_stat *stat), >>> + >>> +        TP_ARGS(nid, nr_scanned, nr_reclaimed, stat), >>> + >>> +        TP_STRUCT__entry( >>> +                __field(int, nid) >>> +                __field(unsigned long, nr_scanned) >>> +                __field(unsigned long, nr_reclaimed) >>> +                __field(unsigned long, nr_dirty) >>> +                __field(unsigned long, nr_writeback) >>> +                __field(unsigned long, nr_congested) >>> +                __field(unsigned long, nr_immediate) >>> +                __field(unsigned int, nr_activate0) >>> +                __field(unsigned int, nr_activate1) >>> +                __field(unsigned long, nr_ref_keep) >>> +                __field(unsigned long, nr_unmap_fail) >>> +        ), >>> + >>> +        TP_fast_assign( >>> +                __entry->nid = nid; >>> +                __entry->nr_scanned = nr_scanned; >>> +                __entry->nr_reclaimed = nr_reclaimed; >>> +                __entry->nr_dirty = stat->nr_dirty; >>> +                __entry->nr_writeback = stat->nr_writeback; >>> +                __entry->nr_congested = stat->nr_congested; >>> +                __entry->nr_immediate = stat->nr_immediate; >>> +                __entry->nr_activate0 = stat->nr_activate[0]; >>> +                __entry->nr_activate1 = stat->nr_activate[1]; >>> +                __entry->nr_ref_keep = stat->nr_ref_keep; >>> +                __entry->nr_unmap_fail = stat->nr_unmap_fail; >>> +        ), >>> + >>> +        TP_printk("nid=%d nr_scanned=%ld nr_reclaimed=%ld nr_dirty=%ld nr_writeback=%ld nr_congested=%ld nr_immediate=%ld nr_activate_anon=%d nr_activate_file=%d nr_ref_keep=%ld nr_unmap_fail=%ld", >>> +                __entry->nid, >>> +                __entry->nr_scanned, __entry->nr_reclaimed, >>> +                __entry->nr_dirty, __entry->nr_writeback, >>> +                __entry->nr_congested, __entry->nr_immediate, >>> +                __entry->nr_activate0, __entry->nr_activate1, >>> +                __entry->nr_ref_keep, __entry->nr_unmap_fail) >>> +); >>> + >>>  TRACE_EVENT(mm_vmscan_lru_shrink_inactive, >>>  >>>         TP_PROTO(int nid, >>> diff --git a/mm/vmscan.c b/mm/vmscan.c >>> index 749cdc110c74..0c2c36bf4c5a 100644 >>> --- a/mm/vmscan.c >>> +++ b/mm/vmscan.c >>> @@ -2126,9 +2126,10 @@ static void shrink_active_list(unsigned long nr_to_scan, >>>  } >>>  >>>  static unsigned int reclaim_folio_list(struct list_head *folio_list, >>> +                                      unsigned int nr_scanned, >>>                                       struct pglist_data *pgdat) >>>  { >>> -        struct reclaim_stat dummy_stat; >>> +        struct reclaim_stat stat; >>>         unsigned int nr_reclaimed; >>>         struct folio *folio; >>>         struct scan_control sc = { >>> @@ -2139,12 +2140,13 @@ static unsigned int reclaim_folio_list(struct list_head *folio_list, >>>                 .no_demotion = 1, >>>         }; >>>  >>> -        nr_reclaimed = shrink_folio_list(folio_list, pgdat, &sc, &dummy_stat, true); >>> +        nr_reclaimed = shrink_folio_list(folio_list, pgdat, &sc, &stat, true); >>>         while (!list_empty(folio_list)) { >>>                 folio = lru_to_folio(folio_list); >>>                 list_del(&folio->lru); >>>                 folio_putback_lru(folio); >>>         } >>> +        trace_mm_vmscan_reclaim_pages(pgdat->node_id, nr_scanned, nr_reclaimed, &stat); >> >>Why is the new calculation of nr_scanned needed? Could you just take a delta >>of sc->nr_scanned, i.e. after - before calling shrink_folio_list() ? > > Oh correct. > > Except the case of (!folio_trylock(folio)), shrink_folio_list would count on sc->nr_scanned. > I don't understand why we do not count this lock case though. Guess it means we couldn't really scan it. Should be probably rare anyway.