diff options
Diffstat (limited to 'kernel/sched/debug.c')
| -rw-r--r-- | kernel/sched/debug.c | 36 | 
1 files changed, 26 insertions, 10 deletions
| diff --git a/kernel/sched/debug.c b/kernel/sched/debug.c index 6f79596e0ea9..2cd3c1b4e582 100644 --- a/kernel/sched/debug.c +++ b/kernel/sched/debug.c @@ -61,14 +61,20 @@ static unsigned long nsec_low(unsigned long long nsec)  static void print_cfs_group_stats(struct seq_file *m, int cpu, struct task_group *tg)  {  	struct sched_entity *se = tg->se[cpu]; -	if (!se) -		return;  #define P(F) \  	SEQ_printf(m, "  .%-30s: %lld\n", #F, (long long)F)  #define PN(F) \  	SEQ_printf(m, "  .%-30s: %lld.%06ld\n", #F, SPLIT_NS((long long)F)) +	if (!se) { +		struct sched_avg *avg = &cpu_rq(cpu)->avg; +		P(avg->runnable_avg_sum); +		P(avg->runnable_avg_period); +		return; +	} + +  	PN(se->exec_start);  	PN(se->vruntime);  	PN(se->sum_exec_runtime); @@ -85,6 +91,12 @@ static void print_cfs_group_stats(struct seq_file *m, int cpu, struct task_group  	P(se->statistics.wait_count);  #endif  	P(se->load.weight); +#ifdef CONFIG_SMP +	P(se->avg.runnable_avg_sum); +	P(se->avg.runnable_avg_period); +	P(se->avg.load_avg_contrib); +	P(se->avg.decay_count); +#endif  #undef PN  #undef P  } @@ -206,14 +218,18 @@ void print_cfs_rq(struct seq_file *m, int cpu, struct cfs_rq *cfs_rq)  	SEQ_printf(m, "  .%-30s: %ld\n", "load", cfs_rq->load.weight);  #ifdef CONFIG_FAIR_GROUP_SCHED  #ifdef CONFIG_SMP -	SEQ_printf(m, "  .%-30s: %Ld.%06ld\n", "load_avg", -			SPLIT_NS(cfs_rq->load_avg)); -	SEQ_printf(m, "  .%-30s: %Ld.%06ld\n", "load_period", -			SPLIT_NS(cfs_rq->load_period)); -	SEQ_printf(m, "  .%-30s: %ld\n", "load_contrib", -			cfs_rq->load_contribution); -	SEQ_printf(m, "  .%-30s: %d\n", "load_tg", -			atomic_read(&cfs_rq->tg->load_weight)); +	SEQ_printf(m, "  .%-30s: %lld\n", "runnable_load_avg", +			cfs_rq->runnable_load_avg); +	SEQ_printf(m, "  .%-30s: %lld\n", "blocked_load_avg", +			cfs_rq->blocked_load_avg); +	SEQ_printf(m, "  .%-30s: %ld\n", "tg_load_avg", +			atomic64_read(&cfs_rq->tg->load_avg)); +	SEQ_printf(m, "  .%-30s: %lld\n", "tg_load_contrib", +			cfs_rq->tg_load_contrib); +	SEQ_printf(m, "  .%-30s: %d\n", "tg_runnable_contrib", +			cfs_rq->tg_runnable_contrib); +	SEQ_printf(m, "  .%-30s: %d\n", "tg->runnable_avg", +			atomic_read(&cfs_rq->tg->runnable_avg));  #endif  	print_cfs_group_stats(m, cpu, cfs_rq->tg); |