diff options
author | Peter Zijlstra <a.p.zijlstra@chello.nl> | 2009-02-05 06:24:15 -0500 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2009-02-05 07:04:33 -0500 |
commit | 32bd671d6cbeda60dc73be77fa2b9037d9a9bfa0 (patch) | |
tree | 591c941b9f12ce9f3caefd112f0ada3c5fcc53ab /include | |
parent | 83895147b702434e6f236deeca75211fd0e3da3a (diff) |
signal: re-add dead task accumulation stats.
We're going to split the process wide cpu accounting into two parts:
- clocks; which can take all the time they want since they run
from user context.
- timers; which need constant time tracing but can affort the overhead
because they're default off -- and rare.
The clock readout will go back to a full sum of the thread group, for this
we need to re-add the exit stats that were removed in the initial itimer
rework (f06febc9: timers: fix itimer/many thread hang).
Furthermore, since that full sum can be rather slow for large thread groups
and we have the complete dead task stats, revert the do_notify_parent time
computation.
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Reviewed-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/sched.h | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/include/linux/sched.h b/include/linux/sched.h index 2127e959e0f4..2e0646a30314 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h | |||
@@ -559,7 +559,7 @@ struct signal_struct { | |||
559 | * Live threads maintain their own counters and add to these | 559 | * Live threads maintain their own counters and add to these |
560 | * in __exit_signal, except for the group leader. | 560 | * in __exit_signal, except for the group leader. |
561 | */ | 561 | */ |
562 | cputime_t cutime, cstime; | 562 | cputime_t utime, stime, cutime, cstime; |
563 | cputime_t gtime; | 563 | cputime_t gtime; |
564 | cputime_t cgtime; | 564 | cputime_t cgtime; |
565 | unsigned long nvcsw, nivcsw, cnvcsw, cnivcsw; | 565 | unsigned long nvcsw, nivcsw, cnvcsw, cnivcsw; |
@@ -568,6 +568,14 @@ struct signal_struct { | |||
568 | struct task_io_accounting ioac; | 568 | struct task_io_accounting ioac; |
569 | 569 | ||
570 | /* | 570 | /* |
571 | * Cumulative ns of schedule CPU time fo dead threads in the | ||
572 | * group, not including a zombie group leader, (This only differs | ||
573 | * from jiffies_to_ns(utime + stime) if sched_clock uses something | ||
574 | * other than jiffies.) | ||
575 | */ | ||
576 | unsigned long long sum_sched_runtime; | ||
577 | |||
578 | /* | ||
571 | * We don't bother to synchronize most readers of this at all, | 579 | * We don't bother to synchronize most readers of this at all, |
572 | * because there is no reader checking a limit that actually needs | 580 | * because there is no reader checking a limit that actually needs |
573 | * to get both rlim_cur and rlim_max atomically, and either one | 581 | * to get both rlim_cur and rlim_max atomically, and either one |