Index: linux/include/linux/acct.h =================================================================== --- linux.orig/include/linux/acct.h 2006-07-20 11:38:51.956204769 -0700 +++ linux/include/linux/acct.h 2006-07-20 11:45:32.469053105 -0700 @@ -124,16 +124,12 @@ extern void acct_auto_close(struct super extern void acct_init_pacct(struct pacct_struct *pacct); extern void acct_collect(long exitcode, int group_dead); extern void acct_process(void); -extern void acct_update_integrals(struct task_struct *tsk); -extern void acct_clear_integrals(struct task_struct *tsk); #else #define acct_auto_close_mnt(x) do { } while (0) #define acct_auto_close(x) do { } while (0) #define acct_init_pacct(x) do { } while (0) #define acct_collect(x,y) do { } while (0) #define acct_process() do { } while (0) -#define acct_update_integrals(x) do { } while (0) -#define acct_clear_integrals(task) do { } while (0) #endif /* Index: linux/include/linux/csa_kern.h =================================================================== --- linux.orig/include/linux/csa_kern.h 2006-07-20 11:44:05.079993220 -0700 +++ linux/include/linux/csa_kern.h 2006-07-20 11:47:16.266315471 -0700 @@ -28,4 +28,12 @@ extern void csa_add_tsk(struct taskstats */ #define REV_CSA 07000 /* Kernel: CSA base record */ +#ifdef CONFIG_CSA_ACCT +extern void acct_update_integrals(struct task_struct *tsk); +extern void acct_clear_integrals(struct task_struct *tsk); +#else +#define acct_update_integrals(x) do { } while (0) +#define acct_clear_integrals(task) do { } while (0) +#endif + #endif /* _CSA_KERN_H */ Index: linux/kernel/acct.c =================================================================== --- linux.orig/kernel/acct.c 2006-07-20 11:38:51.956204769 -0700 +++ linux/kernel/acct.c 2006-07-20 11:45:32.477053203 -0700 @@ -598,33 +598,3 @@ void acct_process(void) do_acct_process(file); fput(file); } - - -/** - * acct_update_integrals - update mm integral fields in task_struct - * @tsk: task_struct for accounting - */ -void acct_update_integrals(struct task_struct *tsk) -{ - if (likely(tsk->mm)) { - long delta = - cputime_to_jiffies(tsk->stime) - tsk->acct_stimexpd; - - if (delta == 0) - return; - tsk->acct_stimexpd = tsk->stime; - tsk->acct_rss_mem1 += delta * get_mm_rss(tsk->mm); - tsk->acct_vm_mem1 += delta * tsk->mm->total_vm; - } -} - -/** - * acct_clear_integrals - clear the mm integral fields in task_struct - * @tsk: task_struct whose accounting fields are cleared - */ -void acct_clear_integrals(struct task_struct *tsk) -{ - tsk->acct_stimexpd = 0; - tsk->acct_rss_mem1 = 0; - tsk->acct_vm_mem1 = 0; -} Index: linux/kernel/csa.c =================================================================== --- linux.orig/kernel/csa.c 2006-07-20 11:45:18.364881535 -0700 +++ linux/kernel/csa.c 2006-07-20 11:45:32.477053203 -0700 @@ -44,3 +44,35 @@ void csa_add_tsk(struct taskstats *stats stats->ac_scr = p->syscr; stats->ac_scw = p->syscw; } + + + + +/** + * acct_update_integrals - update mm integral fields in task_struct + * @tsk: task_struct for accounting + */ +void acct_update_integrals(struct task_struct *tsk) +{ + if (likely(tsk->mm)) { + long delta = + cputime_to_jiffies(tsk->stime) - tsk->acct_stimexpd; + + if (delta == 0) + return; + tsk->acct_stimexpd = tsk->stime; + tsk->acct_rss_mem1 += delta * get_mm_rss(tsk->mm); + tsk->acct_vm_mem1 += delta * tsk->mm->total_vm; + } +} + +/** + * acct_clear_integrals - clear the mm integral fields in task_struct + * @tsk: task_struct whose accounting fields are cleared + */ +void acct_clear_integrals(struct task_struct *tsk) +{ + tsk->acct_stimexpd = 0; + tsk->acct_rss_mem1 = 0; + tsk->acct_vm_mem1 = 0; +} Index: linux/include/linux/sched.h =================================================================== --- linux.orig/include/linux/sched.h 2006-07-20 11:38:51.956204769 -0700 +++ linux/include/linux/sched.h 2006-07-20 11:45:32.481053251 -0700 @@ -964,7 +964,7 @@ struct task_struct { wait_queue_t *io_wait; /* i/o counters(bytes read/written, #syscalls */ u64 rchar, wchar, syscr, syscw; -#if defined(CONFIG_BSD_PROCESS_ACCT) +#if defined(CONFIG_CSA_ACCT) u64 acct_rss_mem1; /* accumulated rss usage */ u64 acct_vm_mem1; /* accumulated virtual memory usage */ clock_t acct_stimexpd; /* clock_t-converted stime since last update */ Index: linux/fs/compat.c =================================================================== --- linux.orig/fs/compat.c 2006-07-20 11:38:52.028205640 -0700 +++ linux/fs/compat.c 2006-07-20 11:45:32.481053251 -0700 @@ -44,7 +44,7 @@ #include #include #include -#include +#include #include #include /* siocdevprivate_ioctl */ Index: linux/fs/exec.c =================================================================== --- linux.orig/fs/exec.c 2006-07-20 11:38:52.056205979 -0700 +++ linux/fs/exec.c 2006-07-20 11:45:32.485053300 -0700 @@ -46,7 +46,7 @@ #include #include #include -#include +#include #include #include Index: linux/kernel/exit.c =================================================================== --- linux.orig/kernel/exit.c 2006-07-20 11:38:51.956204769 -0700 +++ linux/kernel/exit.c 2006-07-20 11:45:32.489053349 -0700 @@ -18,6 +18,7 @@ #include #include #include +#include #include #include #include Index: linux/kernel/fork.c =================================================================== --- linux.orig/kernel/fork.c 2006-07-20 11:38:51.956204769 -0700 +++ linux/kernel/fork.c 2006-07-20 11:45:32.489053349 -0700 @@ -42,6 +42,7 @@ #include #include #include +#include #include #include #include Index: linux/kernel/sched.c =================================================================== --- linux.orig/kernel/sched.c 2006-07-20 11:38:51.956204769 -0700 +++ linux/kernel/sched.c 2006-07-20 11:45:32.493053397 -0700 @@ -49,7 +49,7 @@ #include #include #include -#include +#include #include #include #include