diff options
author | Thomas Gleixner <tglx@linutronix.de> | 2019-04-10 06:28:08 -0400 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2019-04-14 13:58:31 -0400 |
commit | accddc41b96915ab4e5d37796c6d17d70805999c (patch) | |
tree | a16b3503c18c26dd2ae2c4a400e24b559ca1475f | |
parent | ead97a49ec3a3cb9b5133acbfed9a49b91ebf37c (diff) |
latency_top: Remove the ULONG_MAX stack trace hackery
No architecture terminates the stack trace with ULONG_MAX anymore. The
consumer terminates on the first zero entry or at the number of entries, so
no functional change.
Remove the cruft.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Cc: Josh Poimboeuf <jpoimboe@redhat.com>
Cc: Andy Lutomirski <luto@kernel.org>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: Alexander Potapenko <glider@google.com>
Link: https://lkml.kernel.org/r/20190410103644.853527514@linutronix.de
-rw-r--r-- | fs/proc/base.c | 3 | ||||
-rw-r--r-- | kernel/latencytop.c | 12 |
2 files changed, 7 insertions, 8 deletions
diff --git a/fs/proc/base.c b/fs/proc/base.c index 6a803a0b75df..5569f215fc54 100644 --- a/fs/proc/base.c +++ b/fs/proc/base.c | |||
@@ -489,10 +489,9 @@ static int lstats_show_proc(struct seq_file *m, void *v) | |||
489 | lr->count, lr->time, lr->max); | 489 | lr->count, lr->time, lr->max); |
490 | for (q = 0; q < LT_BACKTRACEDEPTH; q++) { | 490 | for (q = 0; q < LT_BACKTRACEDEPTH; q++) { |
491 | unsigned long bt = lr->backtrace[q]; | 491 | unsigned long bt = lr->backtrace[q]; |
492 | |||
492 | if (!bt) | 493 | if (!bt) |
493 | break; | 494 | break; |
494 | if (bt == ULONG_MAX) | ||
495 | break; | ||
496 | seq_printf(m, " %ps", (void *)bt); | 495 | seq_printf(m, " %ps", (void *)bt); |
497 | } | 496 | } |
498 | seq_putc(m, '\n'); | 497 | seq_putc(m, '\n'); |
diff --git a/kernel/latencytop.c b/kernel/latencytop.c index 96b4179cee6a..f5a90ab3c6b9 100644 --- a/kernel/latencytop.c +++ b/kernel/latencytop.c | |||
@@ -120,8 +120,8 @@ account_global_scheduler_latency(struct task_struct *tsk, | |||
120 | break; | 120 | break; |
121 | } | 121 | } |
122 | 122 | ||
123 | /* 0 and ULONG_MAX entries mean end of backtrace: */ | 123 | /* 0 entry marks end of backtrace: */ |
124 | if (record == 0 || record == ULONG_MAX) | 124 | if (!record) |
125 | break; | 125 | break; |
126 | } | 126 | } |
127 | if (same) { | 127 | if (same) { |
@@ -210,8 +210,8 @@ __account_scheduler_latency(struct task_struct *tsk, int usecs, int inter) | |||
210 | break; | 210 | break; |
211 | } | 211 | } |
212 | 212 | ||
213 | /* 0 and ULONG_MAX entries mean end of backtrace: */ | 213 | /* 0 entry is end of backtrace */ |
214 | if (record == 0 || record == ULONG_MAX) | 214 | if (!record) |
215 | break; | 215 | break; |
216 | } | 216 | } |
217 | if (same) { | 217 | if (same) { |
@@ -252,10 +252,10 @@ static int lstats_show(struct seq_file *m, void *v) | |||
252 | lr->count, lr->time, lr->max); | 252 | lr->count, lr->time, lr->max); |
253 | for (q = 0; q < LT_BACKTRACEDEPTH; q++) { | 253 | for (q = 0; q < LT_BACKTRACEDEPTH; q++) { |
254 | unsigned long bt = lr->backtrace[q]; | 254 | unsigned long bt = lr->backtrace[q]; |
255 | |||
255 | if (!bt) | 256 | if (!bt) |
256 | break; | 257 | break; |
257 | if (bt == ULONG_MAX) | 258 | |
258 | break; | ||
259 | seq_printf(m, " %ps", (void *)bt); | 259 | seq_printf(m, " %ps", (void *)bt); |
260 | } | 260 | } |
261 | seq_puts(m, "\n"); | 261 | seq_puts(m, "\n"); |