[PATCH 2.6.8.1 3/4] CSA csa_eop: accounting end-of-process hook
Jay Lan <[email protected]> Thu, 09 Sep 2004 12:15:30 -0700
| Newsgroups | gmane.linux.comprehensive-system-accounting,gmane.linux.kernel,gmane.linux.lse |
|---|---|
| Message-ID | <[email protected]> |
Linux Comprehensive System Accounting (CSA) is a set of C programs and shell scripts that, like other accounting packages, provide methods for collecting per-process resource usage data, monitoring disk usage, and charging fees to specific login accounts. The CSA patchset includes csa_io, csa_mm, csa_eop and csa_module. Patches csa_io, csa_mm, and csa_eop are responsible for system accounting data collection and are independent of each other. csa_eop is a patch that provides a hook for end-of-process handling. Please find CSA project at http://oss.sgi.com/projects/csa. This set of csa patches has been tested with the pagg and job kernel patches. The information of pagg and job project can be found at http://oss.sgi.com/projects/pagg/ Signed-off-by: Jay Lan <[email protected]>
linux-2.6.8.1.csa_eop.patch
(text/plain, 1.2 KB)
Index: linux/kernel/exit.c
===================================================================
--- linux.orig/kernel/exit.c 2004-09-03 17:17:03.000000000 -0700
+++ linux/kernel/exit.c 2004-09-03 17:17:03.000000000 -0700
@@ -33,6 +33,8 @@
extern void sem_exit (void);
extern struct task_struct *child_reaper;
+void (*do_eop_acct) (int, struct task_struct *) = NULL;
+EXPORT_SYMBOL(do_eop_acct);
int getrusage(struct task_struct *, int, struct rusage __user *);
@@ -826,6 +828,9 @@
csa_update_integrals();
update_mem_hiwater();
acct_process(code);
+ /* Handle end-of-process accounting */
+ if (do_eop_acct != NULL)
+ do_eop_acct(code, tsk);
__exit_mm(tsk);
exit_sem(tsk);
Index: linux/include/linux/acct.h
===================================================================
--- linux.orig/include/linux/acct.h 2004-08-13 22:36:32.000000000 -0700
+++ linux/include/linux/acct.h 2004-09-03 17:17:03.000000000 -0700
@@ -185,6 +185,13 @@
return x;
}
+/*
+ * extern declaration that provides the hook needed for processing of
+ * end-of-process accounting record
+ *
+ */
+extern void (*do_eop_acct) (int, struct task_struct *);
+
#endif /* __KERNEL */
#endif /* _LINUX_ACCT_H */