diff options
author | KaiGai Kohei <kaigai@ak.jp.nec.com> | 2006-06-25 08:49:26 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-06-25 13:01:25 -0400 |
commit | 77787bfb44da6e6166af088226707aeccee27968 (patch) | |
tree | ada770c2f4f2d913c8f96f2eec3125d4cfb22011 /include/linux | |
parent | f6ec29a42d7ac3b309a9cef179b686d23986ab98 (diff) |
[PATCH] pacct: none-delayed process accounting accumulation
In current 2.6.17 implementation, signal_struct refered from task_struct is
used for per-process data structure. The pacct facility also uses it as a
per-process data structure to store stime, utime, minflt, majflt. But those
members are saved in __exit_signal(). It's too late.
For example, if some threads exits at same time, pacct facility has a
possibility to drop accountings for a part of those threads. (see, the
following 'The results of original 2.6.17 kernel') I think accounting
information should be completely collected into the per-process data structure
before writing out an accounting record.
This patch fixes this matter. Accumulation of stime, utime, minflt and majflt
are done before generating accounting record.
[mingo@elte.hu: fix acct_collect() siglock bug found by lockdep]
Signed-off-by: KaiGai Kohei <kaigai@ak.jp.nec.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'include/linux')
-rw-r--r-- | include/linux/sched.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/include/linux/sched.h b/include/linux/sched.h index d8429dc250f0..8d11d9310db0 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h | |||
@@ -362,6 +362,8 @@ struct pacct_struct { | |||
362 | int ac_flag; | 362 | int ac_flag; |
363 | long ac_exitcode; | 363 | long ac_exitcode; |
364 | unsigned long ac_mem; | 364 | unsigned long ac_mem; |
365 | cputime_t ac_utime, ac_stime; | ||
366 | unsigned long ac_minflt, ac_majflt; | ||
365 | }; | 367 | }; |
366 | 368 | ||
367 | /* | 369 | /* |