Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

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
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
@@ -521,11 +521,12 @@ void posix_cpu_timers_exit(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,
		       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)