Commit 17d42c1c authored by Stanislaw Gruszka's avatar Stanislaw Gruszka Committed by Ingo Molnar

posix_cpu_timers_exit_group(): Do not use thread_group_cputimer()

When the process exits we don't have to run new cputimer nor
use running one (as it not accounts when tsk->exit_state != 0)
to get process CPU times.  As there is only one thread we can
just use CPU times fields from task and signal structs.
Signed-off-by: default avatarStanislaw Gruszka <sgruszka@redhat.com>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Roland McGrath <roland@redhat.com>
Cc: Vitaly Mayatskikh <vmayatsk@redhat.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
parent 7b2aa037
...@@ -521,11 +521,12 @@ void posix_cpu_timers_exit(struct task_struct *tsk) ...@@ -521,11 +521,12 @@ void posix_cpu_timers_exit(struct task_struct *tsk)
} }
void posix_cpu_timers_exit_group(struct task_struct *tsk) void posix_cpu_timers_exit_group(struct task_struct *tsk)
{ {
struct task_cputime cputime; struct signal_struct *const sig = tsk->signal;
thread_group_cputimer(tsk, &cputime);
cleanup_timers(tsk->signal->cpu_timers, cleanup_timers(tsk->signal->cpu_timers,
cputime.utime, cputime.stime, cputime.sum_exec_runtime); cputime_add(tsk->utime, sig->utime),
cputime_add(tsk->stime, sig->stime),
tsk->se.sum_exec_runtime + sig->sum_sched_runtime);
} }
static void clear_dead_task(struct k_itimer *timer, union cpu_time_count now) static void clear_dead_task(struct k_itimer *timer, union cpu_time_count now)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment