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 C5460C71157 for ; Tue, 24 Jun 2025 05:58:58 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 5E2F66B00C5; Tue, 24 Jun 2025 01:58:58 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 593986B00C6; Tue, 24 Jun 2025 01:58:58 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 4347C6B00C7; Tue, 24 Jun 2025 01:58:58 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 322D46B00C5 for ; Tue, 24 Jun 2025 01:58:58 -0400 (EDT) Received: from smtpin28.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 07FDD12329F for ; Tue, 24 Jun 2025 05:58:58 +0000 (UTC) X-FDA: 83589240756.28.DE03606 Received: from NAM11-BN8-obe.outbound.protection.outlook.com (mail-bn8nam11on2041.outbound.protection.outlook.com [40.107.236.41]) by imf12.hostedemail.com (Postfix) with ESMTP id 1BCB040002 for ; Tue, 24 Jun 2025 05:58:54 +0000 (UTC) Authentication-Results: imf12.hostedemail.com; dkim=pass header.d=amd.com header.s=selector1 header.b="3qEME/OO"; spf=pass (imf12.hostedemail.com: domain of Raghavendra.KodsaraThimmappa@amd.com designates 40.107.236.41 as permitted sender) smtp.mailfrom=Raghavendra.KodsaraThimmappa@amd.com; dmarc=pass (policy=quarantine) header.from=amd.com; arc=pass ("microsoft.com:s=arcselector10001:i=1") ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1750744735; 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=jPBB6uzuV5RsHsgW28KKO9VKzZHyzSSqRmv8hz2TbHA=; b=tRP/43znv2wwKL0jyAJ2xNQ8chuklR/ycJG7OOcJQXeh7BaUidhxjpgOZ01xycG4VUL4+6 VthyGaCR52N/O0mUPW4I7pG+8JT+vn7EEusoFZK9lQQ02+/RQ3TLsz1KSKxN56LPf2XUIZ Of0JXllrQEnrxhL5pAdQ1okTV+qa1Jw= ARC-Authentication-Results: i=2; imf12.hostedemail.com; dkim=pass header.d=amd.com header.s=selector1 header.b="3qEME/OO"; spf=pass (imf12.hostedemail.com: domain of Raghavendra.KodsaraThimmappa@amd.com designates 40.107.236.41 as permitted sender) smtp.mailfrom=Raghavendra.KodsaraThimmappa@amd.com; dmarc=pass (policy=quarantine) header.from=amd.com; arc=pass ("microsoft.com:s=arcselector10001:i=1") ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1750744735; a=rsa-sha256; cv=pass; b=kdRjgHaNBFEt1Mx0C2K5BJ5z9KeLD76J+aer9MkiiHb/mSwPZLISluZXAfb3dJOCd5Bfa4 dU8N2kX+Mzwa/CqVvaaV+j8ARUjYTxmUM/YuoVjAM0Lf0BBhudy3HgFJ1TyTReVmVc53UQ ieKNUQLGDwoy1shvgqe7W7U6FKRUPlw= ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=cXU6DrKqPinu+WjXflLJPeCIij5yrVcqXNmVtbDwHNn9khFFUtH03uRbQS0flr3n843L+8O+yWMZiI8fhyibMbeXXH/0nGWphybzWHnbXhVORfTb0UzDuwNRpgBVc5VbPH8YyHe9Rg5iH9OvPVmBcv/kS3LLiQh1pN/Gq44v+ry3F0cLVbBIerr+nRbYcuwQyhqbnAMurYpL00IIk2kaqpMLRLjCjk2HnQaeyENSrggsw529eVZubgBuf0MZrvZrlE6OBNz0qbdm4pEmf3HKvgntE9MhsxE3yBgk0Ou9radfgdnmzne2F2+/hEdDEyPjMcF86x8FrQwv5ucnCsGUEA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=jPBB6uzuV5RsHsgW28KKO9VKzZHyzSSqRmv8hz2TbHA=; b=rSbn27AeLH+LZ+TLrKlh3CTckZnZB6j9N+rwvtIW0xfpb7UhohIPsHmMdaL6Xsp0gMgkseuXSCuZGxc9R/haQOfJs92CwU07TLW0WEBD3v7pJndtCMxI9O+9yupTrGb1+282/07Siw09GGncZbnph7lco6tLhve6HpNsGfKGxXBYFJb7jKM0JQFUdQQrR0za1xMaSLFPYbbEi6/TR/2KlW8EH++HJ3MJuZL/cuhtmCRgQx0jaLNcciaKk3i78SIkIUwILR8iHzVziq75gx1rSSwcbNAhgUp6Jo06t7Yfk++crjIm/o2eM8I3lyMTxHJGupDwu+T7GyS9mkVpvxjhiw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=arm.com smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=jPBB6uzuV5RsHsgW28KKO9VKzZHyzSSqRmv8hz2TbHA=; b=3qEME/OOcJp74VZ5R4EdCiw9MZkLajZD/I2e82vypNqknfbncMjp5w4aX0ym3BdEvOo8vdMjZ1dG50JYDOp8bp2AQWImy7QySAKkQuSvAHa+BQ7L+qg5aPRTs05U3oI/ZEfHh0xUgO4jXoPXZZIyYVlHI/PWo0xuvd0J+EqCk+k= Received: from BYAPR05CA0101.namprd05.prod.outlook.com (2603:10b6:a03:e0::42) by CYYPR12MB9016.namprd12.prod.outlook.com (2603:10b6:930:c4::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8835.29; Tue, 24 Jun 2025 05:58:51 +0000 Received: from SJ5PEPF00000205.namprd05.prod.outlook.com (2603:10b6:a03:e0:cafe::cf) by BYAPR05CA0101.outlook.office365.com (2603:10b6:a03:e0::42) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8880.16 via Frontend Transport; Tue, 24 Jun 2025 05:58:51 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by SJ5PEPF00000205.mail.protection.outlook.com (10.167.244.38) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8880.14 via Frontend Transport; Tue, 24 Jun 2025 05:58:50 +0000 Received: from tunga.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Tue, 24 Jun 2025 00:58:39 -0500 From: Raghavendra K T To: CC: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , Subject: [RFC PATCH V2 11/13] vmstat: Add vmstat counters Date: Tue, 24 Jun 2025 05:56:15 +0000 Message-ID: <20250624055617.1291159-12-raghavendra.kt@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250624055617.1291159-1-raghavendra.kt@amd.com> References: <20250624055617.1291159-1-raghavendra.kt@amd.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-Originating-IP: [10.180.168.240] X-ClientProxiedBy: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ5PEPF00000205:EE_|CYYPR12MB9016:EE_ X-MS-Office365-Filtering-Correlation-Id: f3c8cd30-f8a2-4a43-9ea0-08ddb2e4319c X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|1800799024|82310400026|36860700013; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?LPhrc0L55uraJKyXWK+Gu08xJWpDSUbya7vjUcpASaB45PbMMwV7d7Iamp7P?= =?us-ascii?Q?TgiJ3c/bvAeEtZoJsltDrRC5CAYdvrYNf65/l8WiqPFm1ZMN5PibfENdMnln?= =?us-ascii?Q?eZeyHALtO9tOSJKg9wfekSYauBAYKiAaLFxLhbAQCrdotNm7UWaP4TWeuEv1?= =?us-ascii?Q?WBy7fmBTKg8xLPFQE7fNhLJDzRwRb2V5KFga0Bq8BB29NK0jQqlnlyB4y6lD?= =?us-ascii?Q?85DokvSRi6SBtQyf4KHXyXPJvYO3tgB/JCXSpUxL0cEMdckVzJfZJyqJMZ7R?= =?us-ascii?Q?LTkMkrDQKMWkrdr0WAwM2qb4UVwEDkGYKM6CGJH0lvEyGzSyj976vLq1SREQ?= =?us-ascii?Q?rM3vEXm2y/D+sNhEGzuSRMoJnD5fCyY7JcxsITyaldJHSCY9AfMKhLmCJ3bZ?= =?us-ascii?Q?oJ140QhytjTFQ068mP2NLH/7tNmQDANEn1AKif8+NHUtVZsmfAoQNWbbZR6h?= =?us-ascii?Q?ovVjSyd7ekdCGj0sMZqrSn7kZ/AwceAuaZzuantsCNCifVJUWzvuEY6bF1xU?= =?us-ascii?Q?pW51IDowJ3H58yrnktOrEUGk1mNgvUCGdUfEBi2C2lx61wrnT93U9KyJ5Qfk?= =?us-ascii?Q?nwM5dDdwT2Vy+zoCSEK/R+nWdzubUh12U8IlHFZcLIBZHkckRwTwQrHPntg4?= =?us-ascii?Q?Rqcnkr9SVNAgXQvaBAqlORx8C1a7ehpqe7m5DbGEBpnzZQJUSIvM2k1DvO14?= =?us-ascii?Q?JNmAYJM72/kB5tXOKiKV2NSOS2fBmAYomsbiJtme1YcP1+YT9W4Ay3UX20z2?= =?us-ascii?Q?kndH+M/spNY9LqAgDxORo+mOT3XBEJsZth8PRJ+LyFVI/VHKtTWtbVrU3SN2?= =?us-ascii?Q?jDQ09NixPvw6IFW2/FaQYTOHmbcrgK74JJnrbs9Y3dHRyrqjYxrUm6Up3K0W?= =?us-ascii?Q?Ie0DaSXaw1vZpPLOgwQmk1ozYeilVxRxAP1sR7vWGwSZShTZPSt/TF2gd12w?= =?us-ascii?Q?PQocfLXfaLEpQwhjW+Jt9EcbFOuc7Djisqk2zOy6nDTd82leqxgkPfCtgC5A?= =?us-ascii?Q?THA5f+EKCy1RoICZs8kCndwukSvKmOgkt+IFqnT2votF7yn4GjMDVJYl7NGY?= =?us-ascii?Q?vU3gBixswKtmufpKRXVbSWU0ATPdsfSHNR921I2bO9Pt0uuJFEP+rvnAk9qZ?= =?us-ascii?Q?PyFyRIz6cytrpxtOJ+wm5lkxXvCGvbId0a+gctT19nrlz8u0XlJismT0e4c6?= =?us-ascii?Q?aWQStmV1dNr994P1dA7l+EpaqPEyCpZykT6UrwBLCA66qsZnTYYHwY2pvPcQ?= =?us-ascii?Q?FFE3Sv0kOXV1xVBSH784g7wQ0C41Zcxl7mfWtFa9N5SAWNzxsT53Z1P8igjr?= =?us-ascii?Q?KI0ZcUoVVnTGgWPLdvWtSNCTvZeZA0Ie51ppmJ3i1u+aC0mQDwdUQ03/8M+5?= =?us-ascii?Q?ux33OHMcBs6R0PiGsErA08zRcEzz91s4rHYqwFvdKo6RojHxLGzAaBDzvd2K?= =?us-ascii?Q?JwWXKK5xUMB6dMdRC5eRfZHoRZ0QgM2S7u5SanVPmfr8n8at3X2Y2qOSkfYN?= =?us-ascii?Q?d/Q+p69d/hgGUC0LXL50y2Ce3lMhLtW4SqhZ?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(7416014)(1800799024)(82310400026)(36860700013);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Jun 2025 05:58:50.9907 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: f3c8cd30-f8a2-4a43-9ea0-08ddb2e4319c X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: SJ5PEPF00000205.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CYYPR12MB9016 X-Rspamd-Queue-Id: 1BCB040002 X-Rspam-User: X-Rspamd-Server: rspam07 X-Stat-Signature: ryh17a4nrkks1h881k78rdyn5spyidxu X-HE-Tag: 1750744734-908884 X-HE-Meta: U2FsdGVkX19o/hkdZT5OCHNP+G0QBGsYQnug4hH+xIC+cdjk58sW9sRA3C2DonwoT9PnYsZpfCR9OU8M65g3lnLZbJAEcfJN5zoujYBK9bzVWXIHTMLELI3fkIZVBSqyzW5iUvtY26ECkGHdPDLkpufqPoKbqhlFfpL9P6cMIIiU5tLupXVL6Uf2pZzjok/fgIZwGUIOdu3jbnZNpsn90GljlgaF7OWhakpoAh1rNl6vXnV6jRqdYpHdt4Lv7IDL6NaeeLMDN4tD11mES1Pr2Qx7zcGva0KkGzTQwd19k/TOmCbkyH+SNjBLoR+VFEAQdI/Ttribo7iHClynEdxwYEgJflmvQ1rjLcTs5all1TFPMfOzCdi0nFDu0y2PrvHMLoFmFyKQc4avmvE0w4BndZti0HTGNM27xQefz9dTn5+6c49p6NjROqBTrGsAUIWcq23MiPQ32wygEV6Ch3hXuiMgx7g2WhJPYziQu4UjPRi4iwBLGpyBhLDBSLeYnjzyhMXoDKwESR95bBfMWp749N8ed4GtjeK3afdwpWOFLcHjfEoIYV1ZemBvwzssEPksZ8Fpwwn5fpwZsL9tESESkUkKMzBW4kbYN0ZkYuwjujlAIbnCL//uiTJzywoLNDArLKGE99kNJXM7Q29TJL27EguhYHw2k9d3sGxWXUE7kmCBYVmPCiOW82wQz+5R8lleXAIkLFb1KiYh0icefy68kR477kB6OT6wTv54s7akp/qhcXddzZvuoo6gBo44MndViRpMeQd4pGg4J8Tr6Bld4I83jIJ9mhpu9iB+/DdCjkOdGZzM+koJ4k9qDEoXEs4zCaWzg8eqnNAETjf/IyyR2dR7JJuzGu4dNYmHKK6F+PqJghkawvRCsE9cVFTBZvVw9ihT5rFpiZQYSx6WGJYx+BE8cCXkPlVaMgcdZQti/zRvZSkiPP1nU7qa/BdGHVtODj7Itpk/78rfHOQ9v65 fnr4cBM4 V2OLPbqsRQOpnUDk/OEtBARrW06uSV2qiEsIfso1DCQj0pDBJLLAhW5Tvw46RLd984U8c5f0YZu+IZ5v5MaHPoWB21rh5qCuG8is9WBiwDmZgR5oKKq6khldnzu52/lSBJ1huqGkT3pHXK7mtIrjjIQH8Ppli62YWL2R4GGY1RagggkBjd0GT58wy0di5iWAqP5qI0i7XFVINkCJMW+MIXzxD3OjKQu9LxTzruSGRqjgVukKLLy8OfrelM+ntTwBCMNqTFssRQKUKpKgKqb3RFpKUryksJguyhGHjYD4Y1B9lXS/ziJsvTgKi5/6ZTXm4gViWHXv0glIfa8bZi905BDmmLwY3EZmcCaIa/8ZUBYFsa4jHhBM5CG/tL7VTWdk1U2MuEXqTg24SLjdmEiw+oOiG5iFN7h5uvLqgcIHLXlan0TzarwBgO8DHUMno6BQAv1slGpdkwWdupmtLjcKH39fwu9O3S5MAV/gJX5B3Kud/cfTiVN+R1IHLNNULHwykh7SQQwUb75dHaC6Vh99r4LGwldCb7Qeqva/7sNRUMHXlbJTxGk72E/T6u3f+bdO7FXChLsk9sT9c7/B/LqqburZDfH11OKQju5mZ/gcQhoOuc4RTSpL+MFtl8dbREG+6DwCLWJXuGk6EQilYl+yVzELVlCl67KZX0y6QfBvSdo99pirgSTwtrHH9KzUJh3DfYAhBiGWle1UOz+Ixka4wvlJAxAu6yLBv8I2Vm9JEKuRPVyaYyFtKOQiEhOAOB3vkKy9+Y5JkXmotlhXgy43uEuJ5frUAiG8tb5XOMD+EbS38R/itJjT3erG2LeGjvHjyhwYbKfZRUATe/Xo= 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: Add vmstat counter to track scanning, migration and type of pages. Signed-off-by: Raghavendra K T --- include/linux/mm.h | 11 ++++++++ include/linux/vm_event_item.h | 10 +++++++ mm/kscand.c | 51 ++++++++++++++++++++++++++++++++++- mm/vmstat.c | 10 +++++++ 4 files changed, 81 insertions(+), 1 deletion(-) This implementation will change with upcoming changes in vmstat. diff --git a/include/linux/mm.h b/include/linux/mm.h index fdda6b16263b..b67d06cbc2ed 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -656,6 +656,17 @@ struct vm_operations_struct { unsigned long addr); }; +#ifdef CONFIG_KSCAND +void count_kscand_mm_scans(void); +void count_kscand_vma_scans(void); +void count_kscand_migadded(void); +void count_kscand_migrated(void); +void count_kscand_migrate_failed(void); +void count_kscand_slowtier(void); +void count_kscand_toptier(void); +void count_kscand_idlepage(void); +#endif + #ifdef CONFIG_NUMA_BALANCING static inline void vma_numab_state_init(struct vm_area_struct *vma) { diff --git a/include/linux/vm_event_item.h b/include/linux/vm_event_item.h index 9e15a088ba38..8f324ad73821 100644 --- a/include/linux/vm_event_item.h +++ b/include/linux/vm_event_item.h @@ -67,6 +67,16 @@ enum vm_event_item { PGPGIN, PGPGOUT, PSWPIN, PSWPOUT, NUMA_HINT_FAULTS_LOCAL, NUMA_PAGE_MIGRATE, #endif +#ifdef CONFIG_KSCAND + KSCAND_MM_SCANS, + KSCAND_VMA_SCANS, + KSCAND_MIGADDED, + KSCAND_MIGRATED, + KSCAND_MIGRATE_FAILED, + KSCAND_SLOWTIER, + KSCAND_TOPTIER, + KSCAND_IDLEPAGE, +#endif #ifdef CONFIG_MIGRATION PGMIGRATE_SUCCESS, PGMIGRATE_FAIL, THP_MIGRATION_SUCCESS, diff --git a/mm/kscand.c b/mm/kscand.c index abffcb868447..db7b2f940f36 100644 --- a/mm/kscand.c +++ b/mm/kscand.c @@ -337,6 +337,39 @@ struct attribute_group kscand_attr_group = { }; #endif +void count_kscand_mm_scans(void) +{ + count_vm_numa_event(KSCAND_MM_SCANS); +} +void count_kscand_vma_scans(void) +{ + count_vm_numa_event(KSCAND_VMA_SCANS); +} +void count_kscand_migadded(void) +{ + count_vm_numa_event(KSCAND_MIGADDED); +} +void count_kscand_migrated(void) +{ + count_vm_numa_event(KSCAND_MIGRATED); +} +void count_kscand_migrate_failed(void) +{ + count_vm_numa_event(KSCAND_MIGRATE_FAILED); +} +void count_kscand_slowtier(void) +{ + count_vm_numa_event(KSCAND_SLOWTIER); +} +void count_kscand_toptier(void) +{ + count_vm_numa_event(KSCAND_TOPTIER); +} +void count_kscand_idlepage(void) +{ + count_vm_numa_event(KSCAND_IDLEPAGE); +} + static inline int kscand_has_work(void) { return !list_empty(&kscand_scan.mm_head); @@ -789,6 +822,9 @@ static int hot_vma_idle_pte_entry(pte_t *pte, return 0; } + if (node_is_toptier(srcnid)) + count_kscand_toptier(); + if (!folio_test_idle(folio) || folio_test_young(folio) || mmu_notifier_test_young(mm, addr) || folio_test_referenced(folio) || pte_young(pteval)) { @@ -802,11 +838,14 @@ static int hot_vma_idle_pte_entry(pte_t *pte, info = kzalloc(sizeof(struct kscand_migrate_info), GFP_NOWAIT); if (info && scanctrl) { + count_kscand_slowtier(); info->address = addr; info->folio = folio; list_add_tail(&info->migrate_node, &scanctrl->scan_list); + count_kscand_migadded(); } - } + } else + count_kscand_idlepage(); folio_set_idle(folio); folio_put(folio); @@ -997,6 +1036,12 @@ static void kmigrated_migrate_mm(struct kmigrated_mm_slot *mm_slot) ret = kmigrated_promote_folio(info, mm, dest); + /* TBD: encode migrated count here, currently assume folio_nr_pages */ + if (!ret) + count_kscand_migrated(); + else + count_kscand_migrate_failed(); + kfree(info); cond_resched(); @@ -1202,6 +1247,7 @@ static unsigned long kscand_scan_mm_slot(void) for_each_vma(vmi, vma) { kscand_walk_page_vma(vma, &kscand_scanctrl); + count_kscand_vma_scans(); vma_scanned_size += vma->vm_end - vma->vm_start; if (vma_scanned_size >= mm_slot_scan_size || @@ -1237,6 +1283,8 @@ static unsigned long kscand_scan_mm_slot(void) update_mmslot_info = true; + count_kscand_mm_scans(); + total = get_slowtier_accesed(&kscand_scanctrl); target_node = get_target_node(&kscand_scanctrl); @@ -1252,6 +1300,7 @@ static unsigned long kscand_scan_mm_slot(void) kscand_update_mmslot_info(mm_slot, total, target_node); } + outerloop: /* exit_mmap will destroy ptes after this */ mmap_read_unlock(mm); diff --git a/mm/vmstat.c b/mm/vmstat.c index 4c268ce39ff2..d32e88e4153d 100644 --- a/mm/vmstat.c +++ b/mm/vmstat.c @@ -1348,6 +1348,16 @@ const char * const vmstat_text[] = { "numa_hint_faults_local", "numa_pages_migrated", #endif +#ifdef CONFIG_KSCAND + "nr_kscand_mm_scans", + "nr_kscand_vma_scans", + "nr_kscand_migadded", + "nr_kscand_migrated", + "nr_kscand_migrate_failed", + "nr_kscand_slowtier", + "nr_kscand_toptier", + "nr_kscand_idlepage", +#endif #ifdef CONFIG_MIGRATION "pgmigrate_success", "pgmigrate_fail", -- 2.34.1