@@ -347,10 +347,7 @@ static __init int sched_init_debug(void)
347
347
debugfs_create_file ("preempt" , 0644 , debugfs_sched , NULL , & sched_dynamic_fops );
348
348
#endif
349
349
350
- debugfs_create_u32 ("latency_ns" , 0644 , debugfs_sched , & sysctl_sched_latency );
351
- debugfs_create_u32 ("min_granularity_ns" , 0644 , debugfs_sched , & sysctl_sched_min_granularity );
352
- debugfs_create_u32 ("idle_min_granularity_ns" , 0644 , debugfs_sched , & sysctl_sched_idle_min_granularity );
353
- debugfs_create_u32 ("wakeup_granularity_ns" , 0644 , debugfs_sched , & sysctl_sched_wakeup_granularity );
350
+ debugfs_create_u32 ("base_slice_ns" , 0644 , debugfs_sched , & sysctl_sched_base_slice );
354
351
355
352
debugfs_create_u32 ("latency_warn_ms" , 0644 , debugfs_sched , & sysctl_resched_latency_warn_ms );
356
353
debugfs_create_u32 ("latency_warn_once" , 0644 , debugfs_sched , & sysctl_resched_latency_warn_once );
@@ -582,9 +579,13 @@ print_task(struct seq_file *m, struct rq *rq, struct task_struct *p)
582
579
else
583
580
SEQ_printf (m , " %c" , task_state_to_char (p ));
584
581
585
- SEQ_printf (m , " %15s %5d %9Ld.%06ld %9Ld %5d " ,
582
+ SEQ_printf (m , "%15s %5d %9Ld.%06ld %c %9Ld.%06ld %9Ld.%06ld %9Ld.%06ld %9Ld %5d " ,
586
583
p -> comm , task_pid_nr (p ),
587
584
SPLIT_NS (p -> se .vruntime ),
585
+ entity_eligible (cfs_rq_of (& p -> se ), & p -> se ) ? 'E' : 'N' ,
586
+ SPLIT_NS (p -> se .deadline ),
587
+ SPLIT_NS (p -> se .slice ),
588
+ SPLIT_NS (p -> se .sum_exec_runtime ),
588
589
(long long )(p -> nvcsw + p -> nivcsw ),
589
590
p -> prio );
590
591
@@ -627,10 +628,9 @@ static void print_rq(struct seq_file *m, struct rq *rq, int rq_cpu)
627
628
628
629
void print_cfs_rq (struct seq_file * m , int cpu , struct cfs_rq * cfs_rq )
629
630
{
630
- s64 MIN_vruntime = -1 , min_vruntime , max_vruntime = -1 ,
631
- spread , rq0_min_vruntime , spread0 ;
631
+ s64 left_vruntime = -1 , min_vruntime , right_vruntime = -1 , spread ;
632
+ struct sched_entity * last , * first ;
632
633
struct rq * rq = cpu_rq (cpu );
633
- struct sched_entity * last ;
634
634
unsigned long flags ;
635
635
636
636
#ifdef CONFIG_FAIR_GROUP_SCHED
@@ -644,26 +644,25 @@ void print_cfs_rq(struct seq_file *m, int cpu, struct cfs_rq *cfs_rq)
644
644
SPLIT_NS (cfs_rq -> exec_clock ));
645
645
646
646
raw_spin_rq_lock_irqsave (rq , flags );
647
- if (rb_first_cached (& cfs_rq -> tasks_timeline ))
648
- MIN_vruntime = (__pick_first_entity (cfs_rq ))-> vruntime ;
647
+ first = __pick_first_entity (cfs_rq );
648
+ if (first )
649
+ left_vruntime = first -> vruntime ;
649
650
last = __pick_last_entity (cfs_rq );
650
651
if (last )
651
- max_vruntime = last -> vruntime ;
652
+ right_vruntime = last -> vruntime ;
652
653
min_vruntime = cfs_rq -> min_vruntime ;
653
- rq0_min_vruntime = cpu_rq (0 )-> cfs .min_vruntime ;
654
654
raw_spin_rq_unlock_irqrestore (rq , flags );
655
- SEQ_printf (m , " .%-30s: %Ld.%06ld\n" , "MIN_vruntime" ,
656
- SPLIT_NS (MIN_vruntime ));
655
+
656
+ SEQ_printf (m , " .%-30s: %Ld.%06ld\n" , "left_vruntime" ,
657
+ SPLIT_NS (left_vruntime ));
657
658
SEQ_printf (m , " .%-30s: %Ld.%06ld\n" , "min_vruntime" ,
658
659
SPLIT_NS (min_vruntime ));
659
- SEQ_printf (m , " .%-30s: %Ld.%06ld\n" , "max_vruntime" ,
660
- SPLIT_NS (max_vruntime ));
661
- spread = max_vruntime - MIN_vruntime ;
662
- SEQ_printf (m , " .%-30s: %Ld.%06ld\n" , "spread" ,
663
- SPLIT_NS (spread ));
664
- spread0 = min_vruntime - rq0_min_vruntime ;
665
- SEQ_printf (m , " .%-30s: %Ld.%06ld\n" , "spread0" ,
666
- SPLIT_NS (spread0 ));
660
+ SEQ_printf (m , " .%-30s: %Ld.%06ld\n" , "avg_vruntime" ,
661
+ SPLIT_NS (avg_vruntime (cfs_rq )));
662
+ SEQ_printf (m , " .%-30s: %Ld.%06ld\n" , "right_vruntime" ,
663
+ SPLIT_NS (right_vruntime ));
664
+ spread = right_vruntime - left_vruntime ;
665
+ SEQ_printf (m , " .%-30s: %Ld.%06ld\n" , "spread" , SPLIT_NS (spread ));
667
666
SEQ_printf (m , " .%-30s: %d\n" , "nr_spread_over" ,
668
667
cfs_rq -> nr_spread_over );
669
668
SEQ_printf (m , " .%-30s: %d\n" , "nr_running" , cfs_rq -> nr_running );
@@ -864,10 +863,7 @@ static void sched_debug_header(struct seq_file *m)
864
863
SEQ_printf(m, " .%-40s: %Ld\n", #x, (long long)(x))
865
864
#define PN (x ) \
866
865
SEQ_printf(m, " .%-40s: %Ld.%06ld\n", #x, SPLIT_NS(x))
867
- PN (sysctl_sched_latency );
868
- PN (sysctl_sched_min_granularity );
869
- PN (sysctl_sched_idle_min_granularity );
870
- PN (sysctl_sched_wakeup_granularity );
866
+ PN (sysctl_sched_base_slice );
871
867
P (sysctl_sched_child_runs_first );
872
868
P (sysctl_sched_features );
873
869
#undef PN
0 commit comments