]> Pileus Git - ~andy/linux/blobdiff - kernel/sched/debug.c
fat: provide option for setting timezone offset
[~andy/linux] / kernel / sched / debug.c
index 6f79596e0ea91acc791ca3512a351f07605e3fbf..2cd3c1b4e582857eefb87fa9a98fb9cad11509a6 100644 (file)
@@ -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);