latency_top: Remove the ULONG_MAX stack trace hackery
authorThomas Gleixner <tglx@linutronix.de>
Wed, 10 Apr 2019 10:28:08 +0000 (12:28 +0200)
committerThomas Gleixner <tglx@linutronix.de>
Sun, 14 Apr 2019 17:58:31 +0000 (19:58 +0200)
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
fs/proc/base.c
kernel/latencytop.c

index 6a803a0..5569f21 100644 (file)
@@ -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');
index 96b4179..f5a90ab 100644 (file)
@@ -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");