[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-Id: <20231120183719.2188479-3-hca@linux.ibm.com>
Date: Mon, 20 Nov 2023 19:37:18 +0100
From: Heiko Carstens <hca@...ux.ibm.com>
To: Andrew Morton <akpm@...ux-foundation.org>,
Masahiro Yamada <masahiroy@...nel.org>
Cc: Vaneet Narang <v.narang@...sung.com>,
Maninder Singh <maninder1.s@...sung.com>,
linux-kernel@...r.kernel.org
Subject: [PATCH 2/3] checkstack: sort output by size and function name
Sort output by size and in addition by function name. This increases
readability for cases where there are many functions with the same stack
usage.
Signed-off-by: Heiko Carstens <hca@...ux.ibm.com>
---
scripts/checkstack.pl | 19 +++++++++++++++++--
1 file changed, 17 insertions(+), 2 deletions(-)
diff --git a/scripts/checkstack.pl b/scripts/checkstack.pl
index f27d552aec43..13408714ba0f 100755
--- a/scripts/checkstack.pl
+++ b/scripts/checkstack.pl
@@ -189,5 +189,20 @@ if ($total_size > $min_stack) {
push @stack, "$intro$total_size\n";
}
-# Sort output by size (last field)
-print sort { ($b =~ /:\t*(\d+)$/)[0] <=> ($a =~ /:\t*(\d+)$/)[0] } @stack;
+# Sort output by size (last field) and function name if size is the same
+sub sort_lines {
+ my ($a, $b) = @_;
+
+ my $num_a = $1 if $a =~ /:\t*(\d+)$/;
+ my $num_b = $1 if $b =~ /:\t*(\d+)$/;
+ my $func_a = $1 if $a =~ / (.*):/;
+ my $func_b = $1 if $b =~ / (.*):/;
+
+ if ($num_a != $num_b) {
+ return $num_b <=> $num_a;
+ } else {
+ return $func_a cmp $func_b;
+ }
+}
+
+print sort { sort_lines($a, $b) } @stack;
--
2.39.2
Powered by blists - more mailing lists