From: "Yang Shi" <yang.s@alibaba-inc.com> To: cl@linux.com, penberg@kernel.org, rientjes@google.com, iamjoonsoo.kim@lge.com, akpm@linux-foundation.org, mhocko@kernel.org Cc: "Yang Shi" <yang.s@alibaba-inc.com>, <linux-mm@kvack.org>, <linux-kernel@vger.kernel.org> Subject: [PATCH 1/2] tools: slabinfo: add "-U" option to show unreclaimable slabs only Date: Thu, 21 Sep 2017 03:09:35 +0800 [thread overview] Message-ID: <1505934576-9749-2-git-send-email-yang.s@alibaba-inc.com> (raw) In-Reply-To: <1505934576-9749-1-git-send-email-yang.s@alibaba-inc.com> Add "-U" option to show unreclaimable slabs only. "-U" and "-S" together can tell us what unreclaimable slabs use the most memory to help debug huge unreclaimable slabs issue. Signed-off-by: Yang Shi <yang.s@alibaba-inc.com> Acked-by: Christoph Lameter <cl@linux.com> --- tools/vm/slabinfo.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/tools/vm/slabinfo.c b/tools/vm/slabinfo.c index b9d34b3..9673190 100644 --- a/tools/vm/slabinfo.c +++ b/tools/vm/slabinfo.c @@ -83,6 +83,7 @@ struct aliasinfo { int sort_loss; int extended_totals; int show_bytes; +int unreclaim_only; /* Debug options */ int sanity; @@ -132,6 +133,7 @@ static void usage(void) "-L|--Loss Sort by loss\n" "-X|--Xtotals Show extended summary information\n" "-B|--Bytes Show size in bytes\n" + "-U|--unreclaim Show unreclaimable slabs only\n" "\nValid debug options (FZPUT may be combined)\n" "a / A Switch on all debug options (=FZUP)\n" "- Switch off all debug options\n" @@ -568,6 +570,9 @@ static void slabcache(struct slabinfo *s) if (strcmp(s->name, "*") == 0) return; + if (unreclaim_only && s->reclaim_account) + return; + if (actual_slabs == 1) { report(s); return; @@ -1346,6 +1351,7 @@ struct option opts[] = { { "Loss", no_argument, NULL, 'L'}, { "Xtotals", no_argument, NULL, 'X'}, { "Bytes", no_argument, NULL, 'B'}, + { "unreclaim", no_argument, NULL, 'U'}, { NULL, 0, NULL, 0 } }; @@ -1357,7 +1363,7 @@ int main(int argc, char *argv[]) page_size = getpagesize(); - while ((c = getopt_long(argc, argv, "aAd::Defhil1noprstvzTSN:LXB", + while ((c = getopt_long(argc, argv, "aAd::Defhil1noprstvzTSN:LXBU", opts, NULL)) != -1) switch (c) { case '1': @@ -1438,6 +1444,9 @@ int main(int argc, char *argv[]) case 'B': show_bytes = 1; break; + case 'U': + unreclaim_only = 1; + break; default: fatal("%s: Invalid option '%c'\n", argv[0], optopt); -- 1.8.3.1
WARNING: multiple messages have this Message-ID (diff)
From: "Yang Shi" <yang.s@alibaba-inc.com> To: cl@linux.com, penberg@kernel.org, rientjes@google.com, iamjoonsoo.kim@lge.com, akpm@linux-foundation.org, mhocko@kernel.org Cc: Yang Shi <yang.s@alibaba-inc.com>, linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: [PATCH 1/2] tools: slabinfo: add "-U" option to show unreclaimable slabs only Date: Thu, 21 Sep 2017 03:09:35 +0800 [thread overview] Message-ID: <1505934576-9749-2-git-send-email-yang.s@alibaba-inc.com> (raw) In-Reply-To: <1505934576-9749-1-git-send-email-yang.s@alibaba-inc.com> Add "-U" option to show unreclaimable slabs only. "-U" and "-S" together can tell us what unreclaimable slabs use the most memory to help debug huge unreclaimable slabs issue. Signed-off-by: Yang Shi <yang.s@alibaba-inc.com> Acked-by: Christoph Lameter <cl@linux.com> --- tools/vm/slabinfo.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/tools/vm/slabinfo.c b/tools/vm/slabinfo.c index b9d34b3..9673190 100644 --- a/tools/vm/slabinfo.c +++ b/tools/vm/slabinfo.c @@ -83,6 +83,7 @@ struct aliasinfo { int sort_loss; int extended_totals; int show_bytes; +int unreclaim_only; /* Debug options */ int sanity; @@ -132,6 +133,7 @@ static void usage(void) "-L|--Loss Sort by loss\n" "-X|--Xtotals Show extended summary information\n" "-B|--Bytes Show size in bytes\n" + "-U|--unreclaim Show unreclaimable slabs only\n" "\nValid debug options (FZPUT may be combined)\n" "a / A Switch on all debug options (=FZUP)\n" "- Switch off all debug options\n" @@ -568,6 +570,9 @@ static void slabcache(struct slabinfo *s) if (strcmp(s->name, "*") == 0) return; + if (unreclaim_only && s->reclaim_account) + return; + if (actual_slabs == 1) { report(s); return; @@ -1346,6 +1351,7 @@ struct option opts[] = { { "Loss", no_argument, NULL, 'L'}, { "Xtotals", no_argument, NULL, 'X'}, { "Bytes", no_argument, NULL, 'B'}, + { "unreclaim", no_argument, NULL, 'U'}, { NULL, 0, NULL, 0 } }; @@ -1357,7 +1363,7 @@ int main(int argc, char *argv[]) page_size = getpagesize(); - while ((c = getopt_long(argc, argv, "aAd::Defhil1noprstvzTSN:LXB", + while ((c = getopt_long(argc, argv, "aAd::Defhil1noprstvzTSN:LXBU", opts, NULL)) != -1) switch (c) { case '1': @@ -1438,6 +1444,9 @@ int main(int argc, char *argv[]) case 'B': show_bytes = 1; break; + case 'U': + unreclaim_only = 1; + break; default: fatal("%s: Invalid option '%c'\n", argv[0], optopt); -- 1.8.3.1 -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
next prev parent reply other threads:[~2017-09-20 19:09 UTC|newest] Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top 2017-09-20 19:09 [RFC v3] oom: capture unreclaimable slab info in oom message when kernel panic Yang Shi 2017-09-20 19:09 ` Yang Shi 2017-09-20 19:09 ` Yang Shi [this message] 2017-09-20 19:09 ` [PATCH 1/2] tools: slabinfo: add "-U" option to show unreclaimable slabs only Yang Shi 2017-09-20 20:45 ` David Rientjes 2017-09-20 20:45 ` David Rientjes 2017-09-20 21:28 ` Yang Shi 2017-09-20 21:28 ` Yang Shi 2017-09-20 19:09 ` [PATCH 2/2] mm: oom: show unreclaimable slab info when kernel panic Yang Shi 2017-09-20 19:09 ` Yang Shi 2017-09-20 21:00 ` David Rientjes 2017-09-20 21:00 ` David Rientjes 2017-09-20 21:32 ` Yang Shi 2017-09-20 21:32 ` Yang Shi -- strict thread matches above, loose matches on Subject: below -- 2017-09-27 21:46 [PATCH 0/2 v8] oom: capture unreclaimable slab info in oom message Yang Shi 2017-09-27 21:46 ` [PATCH 1/2] tools: slabinfo: add "-U" option to show unreclaimable slabs only Yang Shi 2017-09-27 21:46 ` Yang Shi 2017-09-22 19:52 [PATCH 0/2 v6] oom: capture unreclaimable slab info in oom message when kernel panic Yang Shi 2017-09-22 19:52 ` [PATCH 1/2] tools: slabinfo: add "-U" option to show unreclaimable slabs only Yang Shi 2017-09-22 19:52 ` Yang Shi 2017-09-21 20:52 [PATCH 0/2 v5] oom: capture unreclaimable slab info in oom message when kernel panic Yang Shi 2017-09-21 20:52 ` [PATCH 1/2] tools: slabinfo: add "-U" option to show unreclaimable slabs only Yang Shi 2017-09-21 20:52 ` Yang Shi 2017-09-20 22:38 [PATCH 0/2 v4] oom: capture unreclaimable slab info in oom message when kernel panic Yang Shi 2017-09-20 22:38 ` [PATCH 1/2] tools: slabinfo: add "-U" option to show unreclaimable slabs only Yang Shi 2017-09-20 22:38 ` Yang Shi 2017-09-18 18:26 [RFC v2] oom: capture unreclaimable slab info in oom message when kernel panic Yang Shi 2017-09-18 18:26 ` [PATCH 1/2] tools: slabinfo: add "-U" option to show unreclaimable slabs only Yang Shi 2017-09-18 18:26 ` Yang Shi 2017-09-18 18:23 Yang Shi 2017-09-18 18:23 ` Yang Shi
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=1505934576-9749-2-git-send-email-yang.s@alibaba-inc.com \ --to=yang.s@alibaba-inc.com \ --cc=akpm@linux-foundation.org \ --cc=cl@linux.com \ --cc=iamjoonsoo.kim@lge.com \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-mm@kvack.org \ --cc=mhocko@kernel.org \ --cc=penberg@kernel.org \ --cc=rientjes@google.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.