diff options
author | Oleg Nesterov <oleg@redhat.com> | 2010-06-10 19:09:52 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2010-06-18 04:46:56 -0400 |
commit | 48286d5088a3ba76de40a6b70221632a49cab7a1 (patch) | |
tree | 530e71563aaa85fd7b6fa29e689a71e8410fb96e /kernel/sched_stats.h | |
parent | c32b4fce799d3a6157df9048d03e429956c58818 (diff) |
sched: Remove the obsolete exit_state/signal hacks
account_group_xxx() functions check ->exit_state to ensure that
current->signal is valid and can't go away. This is not needed
since ea6d290c, task->signal is pinned to task_struct.
The comment and another hack in account_group_exec_runtime() refers
to task_rq_unlock_wait() which was already removed by b7b8ff63.
Signed-off-by: Oleg Nesterov <oleg@redhat.com>
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
LKML-Reference: <20100610230952.GA25914@redhat.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'kernel/sched_stats.h')
-rw-r--r-- | kernel/sched_stats.h | 27 |
1 files changed, 3 insertions, 24 deletions
diff --git a/kernel/sched_stats.h b/kernel/sched_stats.h index 32d2bd4061b0..25c2f962f6fc 100644 --- a/kernel/sched_stats.h +++ b/kernel/sched_stats.h | |||
@@ -295,13 +295,7 @@ sched_info_switch(struct task_struct *prev, struct task_struct *next) | |||
295 | static inline void account_group_user_time(struct task_struct *tsk, | 295 | static inline void account_group_user_time(struct task_struct *tsk, |
296 | cputime_t cputime) | 296 | cputime_t cputime) |
297 | { | 297 | { |
298 | struct thread_group_cputimer *cputimer; | 298 | struct thread_group_cputimer *cputimer = &tsk->signal->cputimer; |
299 | |||
300 | /* tsk == current, ensure it is safe to use ->signal */ | ||
301 | if (unlikely(tsk->exit_state)) | ||
302 | return; | ||
303 | |||
304 | cputimer = &tsk->signal->cputimer; | ||
305 | 299 | ||
306 | if (!cputimer->running) | 300 | if (!cputimer->running) |
307 | return; | 301 | return; |
@@ -325,13 +319,7 @@ static inline void account_group_user_time(struct task_struct *tsk, | |||
325 | static inline void account_group_system_time(struct task_struct *tsk, | 319 | static inline void account_group_system_time(struct task_struct *tsk, |
326 | cputime_t cputime) | 320 | cputime_t cputime) |
327 | { | 321 | { |
328 | struct thread_group_cputimer *cputimer; | 322 | struct thread_group_cputimer *cputimer = &tsk->signal->cputimer; |
329 | |||
330 | /* tsk == current, ensure it is safe to use ->signal */ | ||
331 | if (unlikely(tsk->exit_state)) | ||
332 | return; | ||
333 | |||
334 | cputimer = &tsk->signal->cputimer; | ||
335 | 323 | ||
336 | if (!cputimer->running) | 324 | if (!cputimer->running) |
337 | return; | 325 | return; |
@@ -355,16 +343,7 @@ static inline void account_group_system_time(struct task_struct *tsk, | |||
355 | static inline void account_group_exec_runtime(struct task_struct *tsk, | 343 | static inline void account_group_exec_runtime(struct task_struct *tsk, |
356 | unsigned long long ns) | 344 | unsigned long long ns) |
357 | { | 345 | { |
358 | struct thread_group_cputimer *cputimer; | 346 | struct thread_group_cputimer *cputimer = &tsk->signal->cputimer; |
359 | struct signal_struct *sig; | ||
360 | |||
361 | sig = tsk->signal; | ||
362 | /* see __exit_signal()->task_rq_unlock_wait() */ | ||
363 | barrier(); | ||
364 | if (unlikely(!sig)) | ||
365 | return; | ||
366 | |||
367 | cputimer = &sig->cputimer; | ||
368 | 347 | ||
369 | if (!cputimer->running) | 348 | if (!cputimer->running) |
370 | return; | 349 | return; |