Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

sched/debug: Fix the runnable tasks output

The current runnable tasks output looks like:

runnable tasks:
S task PID tree-key switches prio wait-time sum-exec sum-sleep
-------------------------------------------------------------------------------------------------------------
Ikworker/R-rcu_g 4 0.129049 E 0.620179 0.750000 0.002920 2 100 0.000000 0.002920 0.000000 0.000000 0 0 /
Ikworker/R-sync_ 5 0.125328 E 0.624147 0.750000 0.001840 2 100 0.000000 0.001840 0.000000 0.000000 0 0 /
Ikworker/R-slub_ 6 0.120835 E 0.628680 0.750000 0.001800 2 100 0.000000 0.001800 0.000000 0.000000 0 0 /
Ikworker/R-netns 7 0.114294 E 0.634701 0.750000 0.002400 2 100 0.000000 0.002400 0.000000 0.000000 0 0 /
I kworker/0:1 9 508.781746 E 511.754666 3.000000 151.575240 224 120 0.000000 151.575240 0.000000 0.000000 0 0 /

Which is messy. Remove the duplicate printing of sum_exec_runtime and
tidy up the layout to make it look like:

runnable tasks:
S task PID vruntime eligible deadline slice sum-exec switches prio wait-time sum-sleep sum-block node group-id group-path
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
I kworker/0:3 1698 295.001459 E 297.977619 3.000000 38.862920 9 120 0.000000 0.000000 0.000000 0 0 /
I kworker/0:4 1702 278.026303 E 281.026303 3.000000 9.918760 3 120 0.000000 0.000000 0.000000 0 0 /
S NetworkManager 2646 0.377936 E 2.598104 3.000000 98.535880 314 120 0.000000 0.000000 0.000000 0 0 /system.slice/NetworkManager.service
S virtqemud 2689 0.541016 E 2.440104 3.000000 50.967960 80 120 0.000000 0.000000 0.000000 0 0 /system.slice/virtqemud.service
S gsd-smartcard 3058 73.604144 E 76.475904 3.000000 74.033320 88 120 0.000000 0.000000 0.000000 0 0 /user.slice/user-42.slice/session-c1.scope

Reviewed-by: Christoph Lameter (Ampere) <cl@linux.com>
Signed-off-by: Huang Shijie <shijie@os.amperecomputing.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Link: https://lkml.kernel.org/r/20240906053019.7874-1-shijie@os.amperecomputing.com

authored by

Huang Shijie and committed by
Peter Zijlstra
2cab4bd0 c662e2b1

+23 -8
+23 -8
kernel/sched/debug.c
··· 739 739 else 740 740 SEQ_printf(m, " %c", task_state_to_char(p)); 741 741 742 - SEQ_printf(m, "%15s %5d %9Ld.%06ld %c %9Ld.%06ld %c %9Ld.%06ld %9Ld.%06ld %9Ld %5d ", 742 + SEQ_printf(m, " %15s %5d %9Ld.%06ld %c %9Ld.%06ld %c %9Ld.%06ld %9Ld.%06ld %9Ld %5d ", 743 743 p->comm, task_pid_nr(p), 744 744 SPLIT_NS(p->se.vruntime), 745 745 entity_eligible(cfs_rq_of(&p->se), &p->se) ? 'E' : 'N', ··· 750 750 (long long)(p->nvcsw + p->nivcsw), 751 751 p->prio); 752 752 753 - SEQ_printf(m, "%9lld.%06ld %9lld.%06ld %9lld.%06ld %9lld.%06ld", 753 + SEQ_printf(m, "%9lld.%06ld %9lld.%06ld %9lld.%06ld", 754 754 SPLIT_NS(schedstat_val_or_zero(p->stats.wait_sum)), 755 - SPLIT_NS(p->se.sum_exec_runtime), 756 755 SPLIT_NS(schedstat_val_or_zero(p->stats.sum_sleep_runtime)), 757 756 SPLIT_NS(schedstat_val_or_zero(p->stats.sum_block_runtime))); 758 757 759 758 #ifdef CONFIG_NUMA_BALANCING 760 - SEQ_printf(m, " %d %d", task_node(p), task_numa_group_id(p)); 759 + SEQ_printf(m, " %d %d", task_node(p), task_numa_group_id(p)); 761 760 #endif 762 761 #ifdef CONFIG_CGROUP_SCHED 763 - SEQ_printf_task_group_path(m, task_group(p), " %s") 762 + SEQ_printf_task_group_path(m, task_group(p), " %s") 764 763 #endif 765 764 766 765 SEQ_printf(m, "\n"); ··· 771 772 772 773 SEQ_printf(m, "\n"); 773 774 SEQ_printf(m, "runnable tasks:\n"); 774 - SEQ_printf(m, " S task PID tree-key switches prio" 775 - " wait-time sum-exec sum-sleep\n"); 775 + SEQ_printf(m, " S task PID vruntime eligible " 776 + "deadline slice sum-exec switches " 777 + "prio wait-time sum-sleep sum-block" 778 + #ifdef CONFIG_NUMA_BALANCING 779 + " node group-id" 780 + #endif 781 + #ifdef CONFIG_CGROUP_SCHED 782 + " group-path" 783 + #endif 784 + "\n"); 776 785 SEQ_printf(m, "-------------------------------------------------------" 777 - "------------------------------------------------------\n"); 786 + "------------------------------------------------------" 787 + "------------------------------------------------------" 788 + #ifdef CONFIG_NUMA_BALANCING 789 + "--------------" 790 + #endif 791 + #ifdef CONFIG_CGROUP_SCHED 792 + "--------------" 793 + #endif 794 + "\n"); 778 795 779 796 rcu_read_lock(); 780 797 for_each_process_thread(g, p) {