diff options
author | Mauro Carvalho Chehab <mchehab@redhat.com> | 2013-01-11 10:28:19 -0500 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2013-01-11 10:28:19 -0500 |
commit | 734d1ece37fbf3d2ddfc71bc6c69e0fe35f02542 (patch) | |
tree | c4805dd7e746b1feb9e09e9849f3245d0b2c0c6b /kernel/sched/debug.c | |
parent | 216c82c6aba63eeb49d7654b448e0d47bea255bb (diff) | |
parent | 9931faca02c604c22335f5a935a501bb2ace6e20 (diff) |
Merge tag 'v3.8-rc3' into v4l_for_linus
Linux 3.8-rc3
* tag 'v3.8-rc3': (11110 commits)
Linux 3.8-rc3
mm: reinstante dropped pmd_trans_splitting() check
cred: Remove tgcred pointer from struct cred
drm/ttm: fix fence locking in ttm_buffer_object_transfer
ARM: clps711x: Fix bad merge of clockevents setup
ARM: highbank: save and restore L2 cache and GIC on suspend
ARM: highbank: add a power request clear
ARM: highbank: fix secondary boot and hotplug
ARM: highbank: fix typos with hignbank in power request functions
ARM: dts: fix highbank cpu mpidr values
ARM: dts: add device_type prop to cpu nodes on Calxeda platforms
drm/prime: drop reference on imported dma-buf come from gem
xen/netfront: improve truesize tracking
ARM: mx5: Fix MX53 flexcan2 clock
ARM: OMAP2+: am33xx-hwmod: Fix wrongly terminated am33xx_usbss_mpu_irqs array
sctp: fix Kconfig bug in default cookie hmac selection
EDAC: Cleanup device deregistering path
EDAC: Fix EDAC Kconfig menu
EDAC: Fix kernel panic on module unloading
ALSA: hda - add mute LED for HP Pavilion 17 (Realtek codec)
...
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) | |||
61 | static void print_cfs_group_stats(struct seq_file *m, int cpu, struct task_group *tg) | 61 | static void print_cfs_group_stats(struct seq_file *m, int cpu, struct task_group *tg) |
62 | { | 62 | { |
63 | struct sched_entity *se = tg->se[cpu]; | 63 | struct sched_entity *se = tg->se[cpu]; |
64 | if (!se) | ||
65 | return; | ||
66 | 64 | ||
67 | #define P(F) \ | 65 | #define P(F) \ |
68 | SEQ_printf(m, " .%-30s: %lld\n", #F, (long long)F) | 66 | SEQ_printf(m, " .%-30s: %lld\n", #F, (long long)F) |
69 | #define PN(F) \ | 67 | #define PN(F) \ |
70 | SEQ_printf(m, " .%-30s: %lld.%06ld\n", #F, SPLIT_NS((long long)F)) | 68 | SEQ_printf(m, " .%-30s: %lld.%06ld\n", #F, SPLIT_NS((long long)F)) |
71 | 69 | ||
70 | if (!se) { | ||
71 | struct sched_avg *avg = &cpu_rq(cpu)->avg; | ||
72 | P(avg->runnable_avg_sum); | ||
73 | P(avg->runnable_avg_period); | ||
74 | return; | ||
75 | } | ||
76 | |||
77 | |||
72 | PN(se->exec_start); | 78 | PN(se->exec_start); |
73 | PN(se->vruntime); | 79 | PN(se->vruntime); |
74 | PN(se->sum_exec_runtime); | 80 | PN(se->sum_exec_runtime); |
@@ -85,6 +91,12 @@ static void print_cfs_group_stats(struct seq_file *m, int cpu, struct task_group | |||
85 | P(se->statistics.wait_count); | 91 | P(se->statistics.wait_count); |
86 | #endif | 92 | #endif |
87 | P(se->load.weight); | 93 | P(se->load.weight); |
94 | #ifdef CONFIG_SMP | ||
95 | P(se->avg.runnable_avg_sum); | ||
96 | P(se->avg.runnable_avg_period); | ||
97 | P(se->avg.load_avg_contrib); | ||
98 | P(se->avg.decay_count); | ||
99 | #endif | ||
88 | #undef PN | 100 | #undef PN |
89 | #undef P | 101 | #undef P |
90 | } | 102 | } |
@@ -206,14 +218,18 @@ void print_cfs_rq(struct seq_file *m, int cpu, struct cfs_rq *cfs_rq) | |||
206 | SEQ_printf(m, " .%-30s: %ld\n", "load", cfs_rq->load.weight); | 218 | SEQ_printf(m, " .%-30s: %ld\n", "load", cfs_rq->load.weight); |
207 | #ifdef CONFIG_FAIR_GROUP_SCHED | 219 | #ifdef CONFIG_FAIR_GROUP_SCHED |
208 | #ifdef CONFIG_SMP | 220 | #ifdef CONFIG_SMP |
209 | SEQ_printf(m, " .%-30s: %Ld.%06ld\n", "load_avg", | 221 | SEQ_printf(m, " .%-30s: %lld\n", "runnable_load_avg", |
210 | SPLIT_NS(cfs_rq->load_avg)); | 222 | cfs_rq->runnable_load_avg); |
211 | SEQ_printf(m, " .%-30s: %Ld.%06ld\n", "load_period", | 223 | SEQ_printf(m, " .%-30s: %lld\n", "blocked_load_avg", |
212 | SPLIT_NS(cfs_rq->load_period)); | 224 | cfs_rq->blocked_load_avg); |
213 | SEQ_printf(m, " .%-30s: %ld\n", "load_contrib", | 225 | SEQ_printf(m, " .%-30s: %ld\n", "tg_load_avg", |
214 | cfs_rq->load_contribution); | 226 | atomic64_read(&cfs_rq->tg->load_avg)); |
215 | SEQ_printf(m, " .%-30s: %d\n", "load_tg", | 227 | SEQ_printf(m, " .%-30s: %lld\n", "tg_load_contrib", |
216 | atomic_read(&cfs_rq->tg->load_weight)); | 228 | cfs_rq->tg_load_contrib); |
229 | SEQ_printf(m, " .%-30s: %d\n", "tg_runnable_contrib", | ||
230 | cfs_rq->tg_runnable_contrib); | ||
231 | SEQ_printf(m, " .%-30s: %d\n", "tg->runnable_avg", | ||
232 | atomic_read(&cfs_rq->tg->runnable_avg)); | ||
217 | #endif | 233 | #endif |
218 | 234 | ||
219 | print_cfs_group_stats(m, cpu, cfs_rq->tg); | 235 | print_cfs_group_stats(m, cpu, cfs_rq->tg); |