latencytop: use the last element of latency_record of system
authorwuchi <wuchi.zero@gmail.com>
Sat, 3 Sep 2022 13:52:33 +0000 (21:52 +0800)
committerAndrew Morton <akpm@linux-foundation.org>
Mon, 12 Sep 2022 04:55:12 +0000 (21:55 -0700)
In account_global_scheduler_latency(), when we don't find the matching
latency_record we try to select one which is unused in
latency_record[MAXLR], but the condition will skip the last one.

if (i >= MAXLR-1)

Fix that.

Link: https://lkml.kernel.org/r/20220903135233.5225-1-wuchi.zero@gmail.com
Signed-off-by: wuchi <wuchi.zero@gmail.com>
Reviewed-by: Andrew Morton <akpm@linux-foudation.org>
Cc: Alexander Viro <viro@zeniv.linux.org.uk>
Cc: Luis Chamberlain <mcgrof@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
kernel/latencytop.c

index 76166df011a4db0aa01c0c3c73c047b0bb6ca1da..781249098cb6e729b77b81658c217097085e6eb6 100644 (file)
@@ -112,7 +112,7 @@ static void __sched
 account_global_scheduler_latency(struct task_struct *tsk,
                                 struct latency_record *lat)
 {
-       int firstnonnull = MAXLR + 1;
+       int firstnonnull = MAXLR;
        int i;
 
        /* skip kernel threads for now */
@@ -150,7 +150,7 @@ account_global_scheduler_latency(struct task_struct *tsk,
        }
 
        i = firstnonnull;
-       if (i >= MAXLR - 1)
+       if (i >= MAXLR)
                return;
 
        /* Allocted a new one: */