diff options
author | Thomas Gleixner <tglx@linutronix.de> | 2019-04-10 13:28:08 +0300 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2019-04-14 20:58:31 +0300 |
commit | accddc41b96915ab4e5d37796c6d17d70805999c (patch) | |
tree | a16b3503c18c26dd2ae2c4a400e24b559ca1475f | |
parent | ead97a49ec3a3cb9b5133acbfed9a49b91ebf37c (diff) | |
download | linux-accddc41b96915ab4e5d37796c6d17d70805999c.tar.xz |
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) lr->count, lr->time, lr->max); for (q = 0; q < LT_BACKTRACEDEPTH; q++) { unsigned long bt = lr->backtrace[q]; + if (!bt) break; - if (bt == ULONG_MAX) - break; seq_printf(m, " %ps", (void *)bt); } 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, break; } - /* 0 and ULONG_MAX entries mean end of backtrace: */ - if (record == 0 || record == ULONG_MAX) + /* 0 entry marks end of backtrace: */ + if (!record) break; } if (same) { @@ -210,8 +210,8 @@ __account_scheduler_latency(struct task_struct *tsk, int usecs, int inter) break; } - /* 0 and ULONG_MAX entries mean end of backtrace: */ - if (record == 0 || record == ULONG_MAX) + /* 0 entry is end of backtrace */ + if (!record) break; } if (same) { @@ -252,10 +252,10 @@ static int lstats_show(struct seq_file *m, void *v) lr->count, lr->time, lr->max); for (q = 0; q < LT_BACKTRACEDEPTH; q++) { unsigned long bt = lr->backtrace[q]; + if (!bt) break; - if (bt == ULONG_MAX) - break; + seq_printf(m, " %ps", (void *)bt); } seq_puts(m, "\n"); |