From patchwork Fri Apr 5 06:08:56 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Honggyu Kim X-Patchwork-Id: 13618555 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 8F76FCD1284 for ; Fri, 5 Apr 2024 06:09:25 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id C47D76B0083; Fri, 5 Apr 2024 02:09:19 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id BA9126B0085; Fri, 5 Apr 2024 02:09:19 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 9ADC66B00A2; Fri, 5 Apr 2024 02:09:19 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 7EC806B0083 for ; Fri, 5 Apr 2024 02:09:19 -0400 (EDT) Received: from smtpin20.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 3963F806FF for ; Fri, 5 Apr 2024 06:09:19 +0000 (UTC) X-FDA: 81974450838.20.7F7B234 Received: from invmail4.hynix.com (exvmail4.skhynix.com [166.125.252.92]) by imf07.hostedemail.com (Postfix) with ESMTP id 428E240003 for ; Fri, 5 Apr 2024 06:09:15 +0000 (UTC) Authentication-Results: imf07.hostedemail.com; dkim=none; dmarc=none; spf=pass (imf07.hostedemail.com: domain of honggyu.kim@sk.com designates 166.125.252.92 as permitted sender) smtp.mailfrom=honggyu.kim@sk.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1712297356; 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-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=maKFdQAUhIGZEbT5bLUApf6fiBu5sCPvbRWSZ1WJmpw=; b=7+tmGd86GRPBcq5w1Ju0LTRg8MvNIvWnsW0hvmpW3CVH/45+rCgVtjyKoXAHp/gSaKpRd2 ccQ1ZrJkqL68gHBxbKXeN0l7AxfkFmkavUktVkkTRcCZHWEqXJIEje1/5LtIjSfqEeeLVq mtWWuyA6Ia7ZdIwUAquGSk1V1l0Pa0k= ARC-Authentication-Results: i=1; imf07.hostedemail.com; dkim=none; dmarc=none; spf=pass (imf07.hostedemail.com: domain of honggyu.kim@sk.com designates 166.125.252.92 as permitted sender) smtp.mailfrom=honggyu.kim@sk.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1712297356; a=rsa-sha256; cv=none; b=ekoEYlAsKbYzXqKG6MzJH/fccc7odINppNZWf/Bb+rMP/Xzy4QhdBJU9CDaPkLLVvtHX1l bnIfQ91g5OnGcSokalHFYjG2XIbhuZaNuSQ4s/qV/Gi4r4LJQXzYDzFuyBF+QMHMaJne/f Ekj+ZjuoFAdXYJvIlLl7ylYWeZq54nM= X-AuditID: a67dfc5b-d6dff70000001748-e9-660f9587c0c4 From: Honggyu Kim To: sj@kernel.org, damon@lists.linux.dev, linux-mm@kvack.org Cc: akpm@linux-foundation.org, apopple@nvidia.com, baolin.wang@linux.alibaba.com, dave.jiang@intel.com, honggyu.kim@sk.com, hyeongtak.ji@sk.com, kernel_team@skhynix.com, linmiaohe@huawei.com, linux-kernel@vger.kernel.org, linux-trace-kernel@vger.kernel.org, mathieu.desnoyers@efficios.com, mhiramat@kernel.org, rakie.kim@sk.com, rostedt@goodmis.org, surenb@google.com, yangx.jy@fujitsu.com, ying.huang@intel.com, ziy@nvidia.com, 42.hyeyoo@gmail.com, art.jeongseob@gmail.com Subject: [RFC PATCH v3 7/7] mm/damon: Add "damon_migrate_{hot,cold}" vmstat Date: Fri, 5 Apr 2024 15:08:56 +0900 Message-ID: <20240405060858.2818-8-honggyu.kim@sk.com> X-Mailer: git-send-email 2.43.0.windows.1 In-Reply-To: <20240405060858.2818-1-honggyu.kim@sk.com> References: <20240405060858.2818-1-honggyu.kim@sk.com> MIME-Version: 1.0 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrMIsWRmVeSWpSXmKPExsXC9ZZnkW77VP40g/v3jS0m9hhYzFm/hs1i 140Qi/sPXrNb/N97jNHiyf/frBYnbjayWXR+X8picXnXHDaLe2v+s1ocWX+WxWLz2TPMFouX q1ns63jAZHH46xsmi8mXFrBZvJhyhtHi5KzJLBazj95jdxD2WHr6DZvHhiYgsXPWXXaPln23 2D0WbCr1aDnyltVj8Z6XTB6bVnWyeWz6NInd48SM3yweOx9aerzYPJPRo7f5HZvH501yAXxR XDYpqTmZZalF+nYJXBknXi5iL+gWqzi65j5TA+NXwS5GTg4JAROJG51nGGHsbfvbmEFsNgE1 iSsvJzF1MXJwiAg4SKz6qtDFyMXBLPCfWeJy7y9WkBphAW+J6xuOMoLUsAioSnxbbwsS5hUw k1iz7wU7xEhNicfbf4LZnALmEvMebwCzhYBqPh08xg5RLyhxcuYTFhCbWUBeonnrbGaQXRIC p9glfm1+BnWbpMTBFTdYJjDyz0LSMwtJzwJGplWMQpl5ZbmJmTkmehmVeZkVesn5uZsYgVG3 rPZP9A7GTxeCDzEKcDAq8fB6zOVLE2JNLCuuzD3EKMHBrCTC2+3AmybEm5JYWZValB9fVJqT WnyIUZqDRUmc1+hbeYqQQHpiSWp2ampBahFMlomDU6qBsVOshzOZ2dzpVu0tg5VW/auevHjv lv74yKOknQeNZLdk2M0SyAxVPnR3b9MiiUMsG4+4qt5cNJt1O1MnY3bv3MNZT/v/X7zGd6t0 xa0yodMLvFNXz3zEe+r2/wB55ddRLDfYdkTkzmyN+znPQa9/4aV4vwcd9SWtFyQPL21K48ru +aJ+/KVqhxJLcUaioRZzUXEiAKaMzZm2AgAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprLIsWRmVeSWpSXmKPExsXCNUNLT7d9Kn+awe31qhYTewws5qxfw2ax 60aIxf0Hr9kt/u89xmjx5P9vVosTNxvZLD4/e81s0fnkO6PF4bknWS06vy9lsbi8aw6bxb01 /1ktjqw/y2Kx+ewZZovFy9UsDl17zmqxr+MBk8Xhr2+YLCZfWsBm8WLKGUaLk7Mms1jMPnqP 3UHcY+npN2weG5qAxM5Zd9k9WvbdYvdYsKnUo+XIW1aPxXteMnlsWtXJ5rHp0yR2jxMzfrN4 7Hxo6fFi80xGj97md2we3257eCx+8YHJ4/MmuQCBKC6blNSczLLUIn27BK6MEy8XsRd0i1Uc XXOfqYHxq2AXIyeHhICJxLb9bcwgNpuAmsSVl5OYuhg5OEQEHCRWfVXoYuTiYBb4zyxxufcX K0iNsIC3xPUNRxlBalgEVCW+rbcFCfMKmEms2feCHWKkpsTj7T/BbE4Bc4l5jzeA2UJANZ8O HmOHqBeUODnzCQuIzSwgL9G8dTbzBEaeWUhSs5CkFjAyrWIUycwry03MzDHVK87OqMzLrNBL zs/dxAiMtGW1fybuYPxy2f0QowAHoxIPr8dcvjQh1sSy4srcQ4wSHMxKIrzdDrxpQrwpiZVV qUX58UWlOanFhxilOViUxHm9wlMThATSE0tSs1NTC1KLYLJMHJxSDYxVlz35HuTVFB8uXW0c wjiDP7l55bRvM1lzQlf5/pHbt+Ju/QXuj0VPxP96evh9mLw/5d0spTs+1asmvjH9eumt7E03 nak8E/sSe2Orte2YEwusOjnfNhlmTrYItvHXaPi0q+z9eh2mhy+EVF0U9eLb9Ez0tl0rMM9/ PfOVi+dvH9Fbn01mGymxFGckGmoxFxUnAgDlDExNsAIAAA== X-CFilter-Loop: Reflected X-Rspamd-Queue-Id: 428E240003 X-Rspam-User: X-Rspamd-Server: rspam04 X-Stat-Signature: nkhxh4zm9jjjcdq97jbz43j366ze7fws X-HE-Tag: 1712297355-396461 X-HE-Meta: U2FsdGVkX187tmJonLmPptudqEPv690amBKvL6vVZDMTWJ87R4FYBiaL7xlX9WXW4Zk8K/TpRt5iVe33/3rBzMHuVq97EqwjiRcKyp1DLUs1tE1FamtvSGjcgYzi1fE1MkGQyuRgk2HLoIW1biDxmvxbfIxeob4PePe73W2zFSf4OJyzaKmbxsXzkstIyvHaAeZF0TWbmoMVusZGGslQce+uXGSAabppoy1CVclpvOb3hVxdusg5+mO6P/HftawfUlkFsfMfOsd8kZ6jE7a03vswWyzVCJGTQilkh1+X8xZLxa0tLmrhy9HvWQCw0K6CMgZDhqFs5DuGl5ipPdjktROKyVBEuH56Oe1SOAfbMr0ZHtJ4D4l6WHl4rWjXp4QCP8vQDsK6+ft4WLe34W+M68cAe2hHx/qfUQamARaXb1d971DldnQEVA8qUYJTjL48Jf9gDRS8AghTrXbAs65qk7ApOJ4JVm0Fshmc66eIsBGEhehBsQPfAxRMjjU6EVobTQOYbuFDTnGadTPr0JsnlfzMfpXabq9syXWtXFLKucXq+yYVqjyYwe6HHBUY55xDfUjml9J8+7RvP6+ztDQ9GHJHt9gx0oxczOFDT+CqC5ivxakIX2CdZM/ma4Iwpd83iaVxViBi8ZMXrtaCnlZZMUNm+EtknSEeF/3o7YBNWPJf9VmPFskMEDYpuJANM9lEzi1vS4GrkLFo6Cd1cczUX/tPVHZU8Y39Y0wCQbMHaDrQ84EwDGyKgQEhtTJjE022YHbcAiRPn3+urpvO5tZyB6mhQhy1OyDIXTHhBRKy4SxiNkxeA3yQi56y4cUXK6TqnYHEzijIXTwfSes621Zl2gAooT7CiviQ13Ob6MMw443nWm5poSD/JcAzyVhL7XlxqKPHlfj7UOvxJJ8eRzfL2OlTBfvPKeTfh+AH87CZbZI+c4ddrLrZSlFf2nFdmoOwx6HCozHkJcmigXDnRcM 10tsyn8U D1D/ZzSQi0VMptkZSmEBV8s2xtyMynpLabn7Zz/piScGy0S2oqVZ/ywM+6iuVLURSUt2NQH13pwqQn+y351ay98b+e+dADrpKim/8bM3tRKN63+swJV/+4NTyq8i7Q8k0q6AhTs7ylUUtmVqdZ1/JOJ6mKw== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000001, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: This patch adds "damon_migrate_{hot,cold}" under node specific vmstat counters at the following location. /sys/devices/system/node/node*/vmstat The counted values are accumulcated to the global vmstat so it also introduces the same counter at /proc/vmstat as well. Signed-off-by: Honggyu Kim --- include/linux/mmzone.h | 4 ++++ mm/damon/paddr.c | 17 ++++++++++++++++- mm/vmstat.c | 4 ++++ 3 files changed, 24 insertions(+), 1 deletion(-) diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h index a497f189d988..0005372c5503 100644 --- a/include/linux/mmzone.h +++ b/include/linux/mmzone.h @@ -214,6 +214,10 @@ enum node_stat_item { PGDEMOTE_KSWAPD, PGDEMOTE_DIRECT, PGDEMOTE_KHUGEPAGED, +#ifdef CONFIG_DAMON_PADDR + DAMON_MIGRATE_HOT, + DAMON_MIGRATE_COLD, +#endif NR_VM_NODE_STAT_ITEMS }; diff --git a/mm/damon/paddr.c b/mm/damon/paddr.c index fd9d35b5cc83..d559c242d151 100644 --- a/mm/damon/paddr.c +++ b/mm/damon/paddr.c @@ -235,10 +235,23 @@ enum migration_mode { static unsigned int migrate_folio_list(struct list_head *migrate_folios, struct pglist_data *pgdat, + enum migration_mode mm, int target_nid) { unsigned int nr_succeeded; nodemask_t allowed_mask = NODE_MASK_NONE; + enum node_stat_item node_stat; + + switch (mm) { + case MIG_MIGRATE_HOT: + node_stat = DAMON_MIGRATE_HOT; + break; + case MIG_MIGRATE_COLD: + node_stat = DAMON_MIGRATE_COLD; + break; + default: + return 0; + } struct migration_target_control mtc = { /* @@ -263,6 +276,8 @@ static unsigned int migrate_folio_list(struct list_head *migrate_folios, (unsigned long)&mtc, MIGRATE_ASYNC, MR_DAMON, &nr_succeeded); + mod_node_page_state(pgdat, node_stat, nr_succeeded); + return nr_succeeded; } @@ -302,7 +317,7 @@ static unsigned int damon_pa_migrate_folio_list(struct list_head *folio_list, /* 'folio_list' is always empty here */ /* Migrate folios selected for migration */ - nr_migrated += migrate_folio_list(&migrate_folios, pgdat, target_nid); + nr_migrated += migrate_folio_list(&migrate_folios, pgdat, mm, target_nid); /* Folios that could not be migrated are still in @migrate_folios */ if (!list_empty(&migrate_folios)) { /* Folios which weren't migrated go back on @folio_list */ diff --git a/mm/vmstat.c b/mm/vmstat.c index db79935e4a54..be9ba89fede1 100644 --- a/mm/vmstat.c +++ b/mm/vmstat.c @@ -1252,6 +1252,10 @@ const char * const vmstat_text[] = { "pgdemote_kswapd", "pgdemote_direct", "pgdemote_khugepaged", +#ifdef CONFIG_DAMON_PADDR + "damon_migrate_hot", + "damon_migrate_cold", +#endif /* enum writeback_stat_item counters */ "nr_dirty_threshold",