All of lore.kernel.org
 help / color / mirror / Atom feed
* [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.