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 98CABC7EE30 for ; Tue, 1 Jul 2025 16:38:19 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 3D4616B00AF; Tue, 1 Jul 2025 12:38:19 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 385766B00B0; Tue, 1 Jul 2025 12:38:19 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 2C2416B00B1; Tue, 1 Jul 2025 12:38:19 -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 1A6FB6B00AF for ; Tue, 1 Jul 2025 12:38:19 -0400 (EDT) Received: from smtpin05.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id E3215B98B0 for ; Tue, 1 Jul 2025 16:38:18 +0000 (UTC) X-FDA: 83616253476.05.97E91B8 Received: from mail-ot1-f51.google.com (mail-ot1-f51.google.com [209.85.210.51]) by imf27.hostedemail.com (Postfix) with ESMTP id 3DE1740006 for ; Tue, 1 Jul 2025 16:38:17 +0000 (UTC) Authentication-Results: imf27.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=K4WvOyWU; spf=pass (imf27.hostedemail.com: domain of lizetao.kernel@gmail.com designates 209.85.210.51 as permitted sender) smtp.mailfrom=lizetao.kernel@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1751387897; 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:in-reply-to: references:dkim-signature; bh=aI43pQuoCfT5xi7RS7gxjF3d17aiR323nv3Yo0r0CxI=; b=1Q8mf0ma7UjyJCnI4N/lbBOO2d/S6HvW855+tsBGPqPJ4XU29Zdg8HUdk+YmXZns0jXZA4 chqoJdzrUzRLt3n2xwhstEsfHlgS4+MD5ems/XKRhG0WeK3Xmp8efV94aaXjeM/nVDFWxv 7mpE6+X0j3hi1iQqDOKiOvB+0ftsptY= ARC-Authentication-Results: i=1; imf27.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=K4WvOyWU; spf=pass (imf27.hostedemail.com: domain of lizetao.kernel@gmail.com designates 209.85.210.51 as permitted sender) smtp.mailfrom=lizetao.kernel@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1751387897; a=rsa-sha256; cv=none; b=r4379hB5fTISsOxH/EZlEclfUDiJx/noRY9Ks/2GbikBjS+/WPrqgj84toem/w+aSCFVeV WRNygjoe43JFPPhiOq3dB8BWq5isVsH8sXjLQVm4xOiJM4eqt6YEEG4aTDBaAw0EyPd9Gk utIL35vCeM4NAf746ptMDVnJ5R8X73Y= Received: by mail-ot1-f51.google.com with SMTP id 46e09a7af769-739f2ad9ef6so483023a34.1 for ; Tue, 01 Jul 2025 09:38:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1751387896; x=1751992696; darn=kvack.org; h=cc:to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=aI43pQuoCfT5xi7RS7gxjF3d17aiR323nv3Yo0r0CxI=; b=K4WvOyWURm7fSvKW2y/QApSslBYxXwROTSBbmPOpJ5EBrOkmwmN2Rtlpa6joln0tUI 9BmPlYJrni132qlbNxNvAKPULq2hj8WKJt236+nfiJPlxUDSeWgVtSHhERlICbjVU9dc XUjKSC9+k+KlJnVQvykUF2eluKtIBvwWUrAg91E2x2eXwfje36Zq1TZf8kb23BTbJcrK S5NX5qEPf1J/H/kzgsi1C1phhdDUx3GXOFrTlz32mFF44ylceKGiPsvdnRCGCJwBbPM7 xmxYGAe0M33E3odzVRwmppKzwAGWjP7Oh321i0K1IxfQL5L4yLSWevyal3pC6CLB5EXe 53Nw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751387896; x=1751992696; h=cc:to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=aI43pQuoCfT5xi7RS7gxjF3d17aiR323nv3Yo0r0CxI=; b=SYc64e5dhYz8DNbHchwV6FLXqkBJ3dV62fXn4csetJZAfZWKyZhFS5Sb5h4FjuQsXx At3xIoTwMlJBM7DlB5uWdNy19ZL4kHlUCqoRfpC8VquAiNcqzbxOuiJsoYycfKnCbFoc UUj9La48KTblcUamG1PoElOkjSA/G5XzuQ3mI1Hz8okyepvZOlrJLAUNU12nnX5nNM7i Fimenf/Ew9hQAavZuAty9urg86HaTjDuCyl9Pnh1QFWd5FnI32jfksBGDY0cI73FeWLb y43lFaQ15cYwxGwBOuhBemQKia95vFCtcROsGIX+oL8sH65PihoUedwfCx67ciUAkl2I REKA== X-Gm-Message-State: AOJu0YxNcFFQCbvrSWuzumaxZ2drY0w7WN3rZH3AD+m+UGQqnYqe+CX3 LBqr4Ln6wRaZf9/F2jmpVd9aexBaNDZpZPxTxsSAIELGnkQTVDXGUQBbGLOLOqNSixsdwmGezaw ZbNM3T0c/5J+4UaEKWEDcOOnC+qUjNPY= X-Gm-Gg: ASbGncvXGbilxrhiv8ws8H5DOgVJCByYUNf/Wm/ic1r9RN4YPVnMTWCgRV0mDFvfmzW ZpgdN7rFMuDfMe3SNwHBzTdUK2G6J+9IBIAXqbHE3kA570xmZzw7H7GmTl/begQ2bBObji2Miqs 3S6oGmijNogC1Ko9rBsHnhd7JUOpvUGxhuJZdxXtXDlrTa X-Google-Smtp-Source: AGHT+IEB/JgGYm7hSfIIaPnp89TvEbAX4xFBMjMpW7Ytwb1tZ7XXgouHsFHne35LN/7DxGA0NC820n9rsolGL1ZQM4I= X-Received: by 2002:a05:6808:bd1:b0:40a:53a2:84a2 with SMTP id 5614622812f47-40b7b0a07afmr1075960b6e.6.1751387895865; Tue, 01 Jul 2025 09:38:15 -0700 (PDT) MIME-Version: 1.0 From: LiZetao Date: Wed, 2 Jul 2025 00:38:06 +0800 X-Gm-Features: Ac12FXw9t6vxjh-c596GHYFGj_mMLgQ78ZUau_iMb2MhPMv1zkLfgHTrGILGYXU Message-ID: Subject: [PATCH mm-next] alloc_tag: add total bytes allocation information To: akpm@linux-foundation.org, surenb@google.com, kent.overstreet@linux.dev Cc: linux-mm@kvack.org Content-Type: text/plain; charset="UTF-8" X-Rspamd-Server: rspam02 X-Rspamd-Queue-Id: 3DE1740006 X-Stat-Signature: oyqx63e7jg618t8pa6ozeq1a4qcrbpap X-Rspam-User: X-HE-Tag: 1751387897-507613 X-HE-Meta: U2FsdGVkX194nC2e56D/KRVUkgA1ZV1aCdF0jKVq7d6Xah1D8go9T86k86HidTSCBIRa3472Ilw5Bwna9oItJat9UV/VQWmqGkpqvaRviecDYwEU7rLkP+xysTj2olJ91lwm3ujU8RcNvpQAIdr8KEQ/FG3mdLnQuC8DKdAkZ0Y5k1cIUlJAg3tal4lIJxfj637th5j1jBaoj4QYF7pwscruFHFlRmYknGSKho2YpzYJzdCyoIr6x7d0CBp+vj0m8vgxSvXapxgl900nzcWI5bX/ebCrW49cAln214CnxKR5zuU1YO1mHnOrqvg6SiHCc+zOe6Q/atHRMdrSH/BM/khtP7t0R0oLRoGSN/GaX8LYqnu2L33ZzwfOWZjWQl19tn7xECgHWUD3w51R/mArl7wRZrr9eWT8px1AN4gNZtqaSZdzrzXP//m89flhlgfh8ULu3D3uSB+Lu7hi3QQ16SXnkG/2VY12v/d3RbfBQL+pbwGj6doBAPDE3SFgV1MGBauXbmRMv/sQZWZyT2Q8RPPOnNvmY7bLMCgMQR9TpTLpWDxDHdwMyIQHFZy1BsMW5973xN7VZNaUsuixVN/cUTplP25CoL5vo7Vtfdy1IuSKXqhw1nAFBWghz8a04T0KO41GcxCeCDKkGQXsUGFHkyXWo7Bd5DvbJWXR4BT4L17uA/UMxliL4WJ/1Pz6L9/3ceJMVbNNn3ExhbxUeC6V6ZRZL+f+RagYPyJ/Pu4Fj3IIzkz+IldDAztRkgj+N49Qb/tdiKY9oPR5F8yCgcHUnZ9PVZrNoMjQA+icR/DG9y/9sGPzvElhr+JdiD6zA9ArmtOeJu0rWaKQ5XwuE8k0fJQlEPtMxFMcv85n05r1PjIIF9LtQbyArHukJCrEwFrgCJnkMCK585L5UP3dJI8wlaMnUNdG+FRXlIWedsOo7ZreyVb3294ixuCm62FigEwbrqj/FIsnpHzmaDwDdMU pQGNTKIB /rWlHpKI8lxUJ7LcuZGuDRNK3OF0s1XZ2PG3aAPce/6jwAQ0Z+GETOuEtZNBPO/BboDVplbveozs6vggHTWn/bR44HnQC3lAPJIfZduwrhRQj/TKgIFQqmKMPDmmoPJkxrGmal3E5Q7KW+qgqoVgvWD1lwRiMpVC/T6dTNBKGIQKVc1Vj4QUC+9FVcYSA/lLjY+LYYDXYj+qCXDZpwuYx2YZJs3PfcHkBD4M1kmIvnTTCwJF0+T56/0e196+4cXlbzOtYz66eg89z0P8fdYIip47n9e35eDSwbJmximnjyE3kiZw7noNv617PfWWSAHHpXyyeQ/ube/fxU09ywYYgXC+EwIw2KRJmF5sScPjGRQYiinDK6JR2p4LRgdDqvFbW58RsNuaqzPlNgnw4PgZvqWriVfMpBQa+OSC41RqKTDSkdiMxWoIjjZfvcw82lQUXyLeP6ZVgFgmkLyxBU5cw3GkFeeLG8K6DoV1juOnY1Zy1HHKiYVoTa69+YA== 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: >From bb3537ee638ac80eebcfe9160961e36df8d3ee4c Mon Sep 17 00:00:00 2001 From: Li Zetao Date: Tue, 1 Jul 2025 09:30:16 +0000 Subject: [PATCH mm-next] alloc_tag: add total bytes allocation information Some performance monitoring tools focus on real-time memory usage anddisplay the total amount of memory applied, which is convenient for analyzing the memory usage ratio. Added total information in /proc/allocinfo to feedback the total amount of memory applied to the user. Example is as follows: root:~# cat /proc/allocinfo|tail 98112 168 lib/radix-tree.c:338 func:__radix_tree_preload 12848 22 lib/radix-tree.c:276 func:radix_tree_node_alloc 300760 515 lib/radix-tree.c:253 func:radix_tree_node_alloc 0 0 lib/xarray.c:1214 func:xas_try_split 0 0 lib/xarray.c:1059 func:xas_split_alloc 208488 357 lib/xarray.c:378 func:xas_alloc 0 0 lib/xarray.c:344 func:__xas_nomem 0 0 lib/xarray.c:341 func:__xas_nomem 0 0 lib/xarray.c:309 func:xas_nomem total: 102208196 Signed-off-by: Li Zetao --- lib/alloc_tag.c | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/lib/alloc_tag.c b/lib/alloc_tag.c index e9b33848700a..e4e41317a4b7 100644 --- a/lib/alloc_tag.c +++ b/lib/alloc_tag.c @@ -43,6 +43,7 @@ int alloc_tag_ref_offs; struct allocinfo_private { struct codetag_iterator iter; bool print_header; + long long total; }; static void *allocinfo_start(struct seq_file *m, loff_t *pos) @@ -53,6 +54,7 @@ static void *allocinfo_start(struct seq_file *m, loff_t *pos) priv = (struct allocinfo_private *)m->private; codetag_lock_module_list(alloc_tag_cttype, true); if (node == 0) { + priv->total = 0; priv->print_header = true; priv->iter = codetag_get_ct_iter(alloc_tag_cttype); codetag_next_ct(&priv->iter); @@ -66,8 +68,16 @@ static void *allocinfo_next(struct seq_file *m, void *arg, loff_t *pos) struct codetag *ct = codetag_next_ct(&priv->iter); (*pos)++; - if (!ct) + if (!ct) { + char *bufp; + size_t n = seq_get_buf(m, &bufp); + struct seq_buf buf; + + seq_buf_init(&buf, bufp, n); + seq_buf_printf(&buf, "total: %llu\n", priv->total); + seq_commit(m, seq_buf_used(&buf)); return NULL; + } return priv; } @@ -84,11 +94,13 @@ static void print_allocinfo_header(struct seq_buf *buf) seq_buf_printf(buf, "# \n"); } -static void alloc_tag_to_text(struct seq_buf *out, struct codetag *ct) +static void alloc_tag_to_text(struct seq_buf *out, struct allocinfo_private *priv) { + struct codetag *ct = priv->iter.ct; struct alloc_tag *tag = ct_to_alloc_tag(ct); struct alloc_tag_counters counter = alloc_tag_read(tag); s64 bytes = counter.bytes; + priv->total += bytes; seq_buf_printf(out, "%12lli %8llu ", bytes, counter.calls); codetag_to_text(out, ct); @@ -108,7 +120,7 @@ static int allocinfo_show(struct seq_file *m, void *arg) print_allocinfo_header(&buf); priv->print_header = false; } - alloc_tag_to_text(&buf, priv->iter.ct); + alloc_tag_to_text(&buf, priv); seq_commit(m, seq_buf_used(&buf)); return 0; } -- 2.34.1