* [patch 2/3] Extended system accounting over taskstats
@ 2006-08-03 4:22 Jay Lan
0 siblings, 0 replies; only message in thread
From: Jay Lan @ 2006-08-03 4:22 UTC (permalink / raw)
To: Andrew Morton
Cc: LKML, Shailabh Nagar, Balbir Singh, Jes Sorensen,
Chris Sturtivant, Tony Ernst, Guillaume Thouvenin
[-- Attachment #1: Type: text/plain, Size: 285 bytes --]
This patch is to replace "[patch 2/3] add CSA accounting to
taskstats" posted on 7/31.
This patch adds extended system accounting handling over
taskstats interface. A CONFIG_TASK_XACCT flag is created
to enable the extended accounting code.
Signed-off-by: Jay Lan <jlan@sgi.com>
[-- Attachment #2: taskstats-acct.patch --]
[-- Type: text/plain, Size: 3707 bytes --]
Index: linux/include/linux/taskstats.h
===================================================================
--- linux.orig/include/linux/taskstats.h 2006-08-02 16:03:31.000000000 -0700
+++ linux/include/linux/taskstats.h 2006-08-02 19:09:02.880918552 -0700
@@ -107,6 +107,17 @@ struct taskstats {
__u64 ac_minflt; /* Minor Page Fault */
__u64 ac_majflt; /* Major Page Fault */
/* Basic Accounting Fields end */
+
+ /* Extended accounting fields start */
+ __u64 acct_rss_mem1; /* accumulated rss usage */
+ __u64 acct_vm_mem1; /* accumulated virtual memory usage */
+ __u64 hiwater_rss; /* High-watermark of RSS usage */
+ __u64 hiwater_vm; /* High-water virtual memory usage */
+ __u64 read_char; /* bytes read */
+ __u64 write_char; /* bytes written */
+ __u64 read_syscalls; /* read syscalls */
+ __u64 write_syscalls; /* write syscalls */
+ /* Extended accounting fields end */
};
Index: linux/init/Kconfig
===================================================================
--- linux.orig/init/Kconfig 2006-08-02 14:52:08.000000000 -0700
+++ linux/init/Kconfig 2006-08-02 17:12:24.937020076 -0700
@@ -182,6 +182,15 @@ config TASK_DELAY_ACCT
Say N if unsure.
+config TASK_XACCT
+ bool "Enable extended accounting over taskstats (EXPERIMENTAL)"
+ depends on TASKSTATS
+ help
+ Collect extended task accounting data and send the data
+ to userland for processing over the taskstats interface.
+
+ Say N if unsure.
+
config SYSCTL
bool "Sysctl support" if EMBEDDED
default y
Index: linux/kernel/taskstats.c
===================================================================
--- linux.orig/kernel/taskstats.c 2006-08-02 15:45:36.000000000 -0700
+++ linux/kernel/taskstats.c 2006-08-02 17:15:11.618985115 -0700
@@ -20,6 +20,7 @@
#include <linux/taskstats_kern.h>
#include <linux/tsacct_kern.h>
#include <linux/delayacct.h>
+#include <linux/tsacct_kern.h>
#include <linux/cpumask.h>
#include <linux/percpu.h>
#include <net/genetlink.h>
@@ -204,6 +205,9 @@ static int fill_pid(pid_t pid, struct ta
stats->version = TASKSTATS_VERSION;
bacct_add_tsk(stats, tsk);
+ /* fill in extended acct fields */
+ xacct_add_tsk(stats, tsk);
+
/* Define err: label here if needed */
put_task_struct(tsk);
return rc;
Index: linux/include/linux/tsacct_kern.h
===================================================================
--- linux.orig/include/linux/tsacct_kern.h 2006-08-02 16:39:56.000000000 -0700
+++ linux/include/linux/tsacct_kern.h 2006-08-02 19:08:17.624349288 -0700
@@ -16,4 +16,13 @@ static inline void bacct_add_tsk(struct
{}
#endif /* CONFIG_TASKSTATS */
+#ifdef CONFIG_TASK_XACCT
+extern void xacct_add_tsk(struct taskstats *stats, struct task_struct *p);
+#else
+static inline void xacct_add_tsk(struct taskstats *stats, struct task_struct *p)
+{}
+#endif /* CONFIG_TASK_XACCT */
+
#endif
+
+
Index: linux/kernel/tsacct.c
===================================================================
--- linux.orig/kernel/tsacct.c 2006-08-02 16:40:42.000000000 -0700
+++ linux/kernel/tsacct.c 2006-08-02 19:16:32.806622818 -0700
@@ -67,3 +67,22 @@ void bacct_add_tsk(struct taskstats *sta
strncpy(stats->ac_comm, tsk->comm, sizeof(stats->ac_comm));
}
+
+#ifdef CONFIG_TASK_XACCT
+/*
+ * fill in extended accounting fields
+ */
+void xacct_add_tsk(struct taskstats *stats, struct task_struct *p)
+{
+ stats->acct_rss_mem1 = p->acct_rss_mem1;
+ stats->acct_vm_mem1 = p->acct_vm_mem1;
+ if (p->mm) {
+ stats->hiwater_rss = p->mm->hiwater_rss;
+ stats->hiwater_vm = p->mm->hiwater_vm;
+ }
+ stats->read_char = p->rchar;
+ stats->write_char = p->wchar;
+ stats->read_syscalls = p->syscr;
+ stats->write_syscalls = p->syscw;
+}
+#endif
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2006-08-03 4:22 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-08-03 4:22 [patch 2/3] Extended system accounting over taskstats Jay Lan
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.