Path: csiph.com!aioe.org!bofh.it!news.nic.it!robomod From: "Yang Shi" Newsgroups: linux.kernel Subject: [PATCH 1/2] tools: slabinfo: add "-U" option to show unreclaimable slabs only Date: Fri, 22 Sep 2017 22:00:03 +0200 Message-ID: References: Dkim-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=alibaba-inc.com; s=default; t=1506109941; h=From:To:Subject:Date:Message-Id; bh=V2ixrzNZA3mAavggdigWuP2IOJ6FPZQvZSKK3+vn51g=; b=gZ3K8YKNQZzFrLOoZUXLquozzDb9ZE4WG96OlpxOJAYPCDrkDbAeKjC6JA0FCPBmxP+N6cfrtDMatlbaI9QVoSIOi1MfL6iCfLgvfJDS9YKJetIfAq/VofKl9zbBrgPGL4sB2CkbE3kbmtW1yKw2XVVlPM4ooiA0m16pEjHQ+/Y= X-Alimail-Antispam: AC=PASS;BC=-1|-1;BR=01201311R861e4;FP=0|-1|-1|-1|0|-1|-1|-1;HT=e02c03290;MF=yang.s@alibaba-inc.com;NM=1;PH=DS;RN=9;SR=0;TI=SMTPD_---.8yOHODC_1506109930; X-Mailer: git-send-email 1.8.3.1 Sender: robomod@news.nic.it List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Approved: robomod@news.nic.it Lines: 71 Organization: linux.* mail to news gateway X-Original-Cc: "Yang Shi" , , X-Original-Date: Sat, 23 Sep 2017 03:52:06 +0800 X-Original-Message-ID: <1506109927-17012-2-git-send-email-yang.s@alibaba-inc.com> X-Original-References: <1506109927-17012-1-git-send-email-yang.s@alibaba-inc.com> X-Original-Sender: linux-kernel-owner@vger.kernel.org Xref: csiph.com linux.kernel:1737791 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 Acked-by: Christoph Lameter Acked-by: David Rientjes --- 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..de8fa11 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