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 C5FD0C5B543 for ; Fri, 30 May 2025 00:40:06 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id A19626B007B; Thu, 29 May 2025 20:40:05 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 9C9B76B0082; Thu, 29 May 2025 20:40:05 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 8E0626B0083; Thu, 29 May 2025 20:40:05 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 6F3E06B007B for ; Thu, 29 May 2025 20:40:05 -0400 (EDT) Received: from smtpin18.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id A84E5C1941 for ; Fri, 30 May 2025 00:40:04 +0000 (UTC) X-FDA: 83497717128.18.8862012 Received: from mail-ej1-f66.google.com (mail-ej1-f66.google.com [209.85.218.66]) by imf18.hostedemail.com (Postfix) with ESMTP id D25F01C0004 for ; Fri, 30 May 2025 00:40:02 +0000 (UTC) Authentication-Results: imf18.hostedemail.com; dkim=pass header.d=purestorage.com header.s=google2022 header.b=XpUf5rna; spf=pass (imf18.hostedemail.com: domain of cachen@purestorage.com designates 209.85.218.66 as permitted sender) smtp.mailfrom=cachen@purestorage.com; dmarc=pass (policy=reject) header.from=purestorage.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1748565603; 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:references:dkim-signature; bh=HCxvwy4PZluQIG24rWzP6VZk5mWwWao15VmAP3SVoIw=; b=maabpFI7q/Mi0wbw6S/eSvcR1GiJnocxPIDL1eRe5wMgtx7pb2Sa3S9+mIGHmg6bv7DJe/ jc4dYefGa/saipCnqA3djcIJX9QJyTkyaaa4+AopJY9eTNhEGdR5n46O5iv9U4xK3URtTw mn1F+y2nWf8FMFmYRKNRLpTguKcxMIU= ARC-Authentication-Results: i=1; imf18.hostedemail.com; dkim=pass header.d=purestorage.com header.s=google2022 header.b=XpUf5rna; spf=pass (imf18.hostedemail.com: domain of cachen@purestorage.com designates 209.85.218.66 as permitted sender) smtp.mailfrom=cachen@purestorage.com; dmarc=pass (policy=reject) header.from=purestorage.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1748565603; a=rsa-sha256; cv=none; b=h/R8Vt10T3ASX1tCnKsJ9huHfZdcbayHQNLxVSY2L7crasX/PgxP+eZjN+1YgZetyCT1F0 QQOXJKz5U7XbOwVI46rt6f2+0YOy7IQ3pDDYIifIQsVTyqOZVZKMFfEAAtZ+EDW5i57XrL GAVy1TPnolS39RekAfWnwwlVbQxQyKk= Received: by mail-ej1-f66.google.com with SMTP id a640c23a62f3a-ab7098af6fdso17780966b.2 for ; Thu, 29 May 2025 17:40:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=purestorage.com; s=google2022; t=1748565601; x=1749170401; darn=kvack.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=HCxvwy4PZluQIG24rWzP6VZk5mWwWao15VmAP3SVoIw=; b=XpUf5rnakMEp0RoeCuOkSctV19IKgpdEfUHfGSFQ9ZdSLHx9uZx25vhI83scB8XhFO RLyQiw3I1gfSlLOQQpr71NWsBROECKxA+8N9PyvniHuKsIHzNxc787/bg8OUMEghU+7e Vp4+yNaR7/0X+8K9ZCo09J5thtyCeBqdRmFOiAM6hWRoN8uE0EybPiSWeONExGx4IdU8 6uXSBUBmvZpIL2JaaXryTo67CaR7HwyN/70DWBzxklXHBlruZBOcYnF/UHxOy5ere3CA YnibJUYy1PRwAaKk2B9ly49JmtvsZClKwTWD7uHDw3YJcgrOuHsoTgfxbnc4jHxuaFhi VvsA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748565601; x=1749170401; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=HCxvwy4PZluQIG24rWzP6VZk5mWwWao15VmAP3SVoIw=; b=PstdKlEhbsmrOc706y8fjeZx/Cph69acapNFb8vc0LmobJNCtLbWmhp+PTS4JTtvQ4 3h5cPAbNQVMQscrCMo+gvp2OcRoIX5hcPBLNRMA98KlbcEzErp8DatsOocpMZqgn/nlH vXZVoGM8qDng1FpmHPo2HqNGVYUZvIHVlW0eYmy/F0R02mUsDROH5w0ejo2yLxwj4Z0T 5nHQyvjTjw/b3ocG1z3095mjpyFSQJEsY+h7MGz9uMINhFnihsOV0FS0rHWFuXOQo8cB 5bgn/JF0Qj/u2TijCKOEMDuaVJKGujHlTUdKswXhXkzlAgb0xX95B/DIOE51b9tn7LtR qsXg== X-Gm-Message-State: AOJu0YzKMZPqQnkjQCp2pQndHuJpdsb5l8TDTtqgI8UOEn5WwaO8gvjI YKLUQjOsjD1RFvuZLPdCi2bO+rZBySMTE4LjfCNFuK8nTjEo4XCpGpj3zlrFD0ouznKJchtzGqG /FXy/iKoNKIit/Uss78r0DyL/L2wlr3x8y3fai6Vje5vaPDpdyMC3LOhwaBK94YET3LOxZ9f+/a dtcAa3rPmWwjrItHnQ5/XMIZzQbQmiCiu1N0yBIMKsw88= X-Gm-Gg: ASbGncuO38FLPT/N144Wl9ax+vZNpUqptyVCXmwjIptxR0C1CAesa02jAJLFDXvK00N oXwROiC1vcJJQhQtHMXqhlLYWOafm8IrQjJqjd3weJNPuIhtVZyCcBd4uupKoWIL42IgQdw6TJS 4asN1Opun7Okz4CcnKk7uu0WnKrFCV2BTT8NANKQ6MtBLeNPpoVDeKLjhzwkxVYO5qMFGSwnC1z 4IKMYjTAj7It9NYAfzengfnW8Ey9fO+JiySkteJr+gl9G33ZJ/k8H5omXQ0Gp4L12FiQ/AOBnSA 7Eq8J/WMtVoy4BrYhMV0Xum59X3R4aSahCF+3GdVY+9ReBxq+siEZcl2soq5azWWgIfVCFI= X-Google-Smtp-Source: AGHT+IHPrxmKm/zH/c6rS9Dyj9qj2wAGStuF3NcDRCi8EOdmGHZ4lO3VaEt4KfXri2ofe28nP8RjVQ== X-Received: by 2002:a17:907:7f86:b0:adb:2dc9:ad4 with SMTP id a640c23a62f3a-adb322d8a36mr43582766b.14.1748565600592; Thu, 29 May 2025 17:40:00 -0700 (PDT) Received: from dev-cachen2.dev.purestorage.com ([2620:125:9007:640:ffff::a1fd]) by smtp.googlemail.com with ESMTPSA id a640c23a62f3a-ada5dd043edsm229149466b.96.2025.05.29.17.39.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 29 May 2025 17:39:59 -0700 (PDT) From: Casey Chen To: linux-mm@kvack.org, surenb@google.com, kent.overstreet@linux.dev Cc: yzhong@purestorage.com, cachen@purestorage.com Subject: [PATCH 0/1] alloc_tag: add per-numa node stats Date: Thu, 29 May 2025 18:39:43 -0600 Message-Id: <20250530003944.2929392-1-cachen@purestorage.com> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Stat-Signature: 7dfzxhioy1jdjrm5wiipqx8zcw6pfkkb X-Rspamd-Queue-Id: D25F01C0004 X-Rspam-User: X-Rspamd-Server: rspam02 X-HE-Tag: 1748565602-742512 X-HE-Meta: U2FsdGVkX18tb+i9zNeWouR95K7aqZhJ3xrdiaE3EP1Qc6QIRbioADFX/PMrZ/Bgqkd280HEfo1NPLs5J+bH2YIIOORCLILwM+w2ExdpX6vWY+vQ2BaDZFmQJ29wZvjqd6a/RRyja2UdZdOuvnIW5sqsVWRlZryCx5pUseilLeAlaiv2WqE+myIsthkLt9blNkCxq9EbYhechRVGhcr83KcWpaJ+5npiFRWbxhSmSn3Y4zurxltX6+o9xs/i0MUXqmoRk53m7yGiWyNaKri4sBJzB209MN10Q9bEijVaHM+7x/eN5m5ijg4epG3EvJjsWA8vNm002T1ne4LlNB8WYnDIjDJHNXJv6WZDbmQjOGgPhgrowSnIiiiW65ZKgMO8AmnoO4SGrsP4R4vBOsoDKtla/QgB9debTkxuIJDZA7zKv8kQWu4KkfUUFLUedIqYogMuT2o3PH4T4idHshOryaT1f+Wmn/6BWr5NwH5OCeb054n68plhK+w+TgA2/JxeKFemUWRL5lR7Mhe9C2jfUb9Kc7UrVgfBN0pU5OcmKtX4WIpBXgzccqGZktzWoWU613gsjFH7jO0Z0BjlgzL/L5mmowO1lC544TpSO02vAM5TTiYhq7FZSMN8vgVpifd/jHUKLofbs1e2PeCCmeGwVzI9sB+pVWIjSfkql7kWDwASFAZKsbk7k8ATxTASDv26ed1ojUJVJ7tgK3DwtVQ/Nf7a5V12GayDNZIDC3po7cEDItHFx+VcwDvciCeQp6Sd89sA+KJkrHqDMgVReUOldfSuc94a3Edyqtp1gIsch3pTCnxgNyJtPV3t5ZRkmi5GmW0xSujXDvqKZODQoG7A4JfUXtbVbsaEsemhCspGm7OJGJtJaB1R/c9I+2v0tHuULz2VYBso8/tPUsHOp5aGd7MydZ1h7ZTVA09l5RVL5xp+PTSR14eqebwpfMiS4rD1E2wTrvtw8wSmiwf6yFT LRTy9faW AQxNFW7eTlpuMMy7Rwmns7yYI75bbK9bSFFtn1oaFy4KAemtMaWeVaURnOdl1I896FSRaDQ4H56skqhERPVxMfaL0rw== 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: The patch is based 4aab42ee1e4e ("mm/zblock: make active_list rcu_list") from branch mm-new of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm The patch adds per-NUMA alloc_tag stats. Bytes/calls in total and per-NUMA nodes are displayed in a single row for each alloc_tag in /proc/allocinfo. Also percpu allocation is marked and its stats is stored on NUMA node 0. For example, the resulting file looks like below. percpu y total 8588 2147 numa0 8588 2147 numa1 0 0 kernel/irq/irqdesc.c:425 func:alloc_desc percpu n total 447232 1747 numa0 269568 1053 numa1 177664 694 lib/maple_tree.c:165 func:mt_alloc_bulk percpu n total 83200 325 numa0 30976 121 numa1 52224 204 lib/maple_tree.c:160 func:mt_alloc_one ... percpu n total 364800 5700 numa0 109440 1710 numa1 255360 3990 drivers/net/ethernet/mellanox/mlx5/core/cmd.c:1410 [mlx5_core] func:mlx5_alloc_cmd_msg percpu n total 1249280 39040 numa0 374784 11712 numa1 874496 27328 drivers/net/ethernet/mellanox/mlx5/core/cmd.c:1376 [mlx5_core] func:alloc_cmd_box To save memory, we dynamically allocate per-NUMA node stats counter once the system boots up and knows how many NUMA nodes available. percpu allocators are used for memory allocation hence increase PERCPU_DYNAMIC_RESERVE. For in-kernel alloc_tags, pcpu_alloc_noprof() is called so the memory for these counters are not accounted in profiling stats. For loadable modules, __alloc_percpu_gfp() is called and memory is accounted. percpu y total 17024 532 numa0 17024 532 numa1 0 0 lib/alloc_tag.c:564 func:load_module Casey Chen (1): alloc_tag: add per-numa node stats include/linux/alloc_tag.h | 48 +++++++++++++++++++++++++++------------ include/linux/codetag.h | 4 ++++ include/linux/percpu.h | 2 +- lib/alloc_tag.c | 41 +++++++++++++++++++++++++++------ mm/page_alloc.c | 35 ++++++++++++++-------------- mm/percpu.c | 8 +++++-- mm/show_mem.c | 21 ++++++++++++----- mm/slub.c | 10 +++++--- 8 files changed, 119 insertions(+), 50 deletions(-) -- 2.34.1