diff options
Diffstat (limited to 'kernel/sched_stats.h')
-rw-r--r-- | kernel/sched_stats.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/kernel/sched_stats.h b/kernel/sched_stats.h index 5bae2e0c3ff2..80179ef7450e 100644 --- a/kernel/sched_stats.h +++ b/kernel/sched_stats.h | |||
@@ -67,6 +67,7 @@ static int show_schedstat(struct seq_file *seq, void *v) | |||
67 | preempt_enable(); | 67 | preempt_enable(); |
68 | #endif | 68 | #endif |
69 | } | 69 | } |
70 | kfree(mask_str); | ||
70 | return 0; | 71 | return 0; |
71 | } | 72 | } |
72 | 73 | ||
@@ -197,6 +198,9 @@ static inline void sched_info_queued(struct task_struct *t) | |||
197 | /* | 198 | /* |
198 | * Called when a process ceases being the active-running process, either | 199 | * Called when a process ceases being the active-running process, either |
199 | * voluntarily or involuntarily. Now we can calculate how long we ran. | 200 | * voluntarily or involuntarily. Now we can calculate how long we ran. |
201 | * Also, if the process is still in the TASK_RUNNING state, call | ||
202 | * sched_info_queued() to mark that it has now again started waiting on | ||
203 | * the runqueue. | ||
200 | */ | 204 | */ |
201 | static inline void sched_info_depart(struct task_struct *t) | 205 | static inline void sched_info_depart(struct task_struct *t) |
202 | { | 206 | { |
@@ -205,6 +209,9 @@ static inline void sched_info_depart(struct task_struct *t) | |||
205 | 209 | ||
206 | t->sched_info.cpu_time += delta; | 210 | t->sched_info.cpu_time += delta; |
207 | rq_sched_info_depart(task_rq(t), delta); | 211 | rq_sched_info_depart(task_rq(t), delta); |
212 | |||
213 | if (t->state == TASK_RUNNING) | ||
214 | sched_info_queued(t); | ||
208 | } | 215 | } |
209 | 216 | ||
210 | /* | 217 | /* |