Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 4 Nov 2010 21:27:00 GMT
From:      Edward Tomasz Napierala <trasz@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 185382 for review
Message-ID:  <201011042127.oA4LR0cm032152@skunkworks.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://p4web.freebsd.org/@@185382?ac=10

Change 185382 by trasz@trasz_victim on 2010/11/04 21:26:30

	Add wallclock time accounting.  Along with appropriate limit, this
	might be useful for killing idle processes.

Affected files ...

.. //depot/projects/soc2009/trasz_limits/sys/kern/kern_container.c#30 edit
.. //depot/projects/soc2009/trasz_limits/sys/kern/kern_hrl.c#95 edit
.. //depot/projects/soc2009/trasz_limits/sys/kern/kern_proc.c#17 edit
.. //depot/projects/soc2009/trasz_limits/sys/kern/kern_resource.c#49 edit
.. //depot/projects/soc2009/trasz_limits/sys/sys/container.h#13 edit

Differences ...

==== //depot/projects/soc2009/trasz_limits/sys/kern/kern_container.c#30 (text+ko) ====

@@ -75,6 +75,7 @@
 	switch (resource) {
 	case RUSAGE_CPU:
 	case RUSAGE_CORE:
+	case RUSAGE_WALLCLOCK:
 		return (0);
 	default:
 		return (1);
@@ -91,6 +92,7 @@
 	case RUSAGE_MEMLOCK:
 	case RUSAGE_NPROC:
 	case RUSAGE_NTHR:
+	case RUSAGE_WALLCLOCK:
 		return (0);
 	default:
 		return (1);
@@ -103,6 +105,7 @@
 
 	switch (resource) {
 	case RUSAGE_RSS:
+	case RUSAGE_WALLCLOCK:
 		return (0);
 	default:
 		return (1);

==== //depot/projects/soc2009/trasz_limits/sys/kern/kern_hrl.c#95 (text+ko) ====

@@ -111,6 +111,7 @@
 	{ "nsemop", RUSAGE_NSEMOP },
 	{ "nshm", RUSAGE_NSHM },
 	{ "shmsize", RUSAGE_SHMSIZE },
+	{ "wallclock", RUSAGE_WALLCLOCK },
 	{ NULL, -1 }};
 
 static struct dict actionnames[] = {

==== //depot/projects/soc2009/trasz_limits/sys/kern/kern_proc.c#17 (text+ko) ====


==== //depot/projects/soc2009/trasz_limits/sys/kern/kern_resource.c#49 (text+ko) ====

@@ -628,6 +628,7 @@
 {
 	struct thread *td;
 	struct proc *p;
+	struct timeval wallclock;
 
 	sx_slock(&allproc_lock);
 	FOREACH_PROC_IN_SYSTEM(p) {
@@ -637,6 +638,9 @@
 		}
 		PROC_SUNLOCK(p);
 		rusage_set(p, RUSAGE_CPU, cputick2usec(p->p_rux.rux_runtime));
+		microuptime(&wallclock);
+		timevalsub(&wallclock, &p->p_stats->p_start);
+		rusage_set(p, RUSAGE_WALLCLOCK, wallclock.tv_sec * 1000000 + wallclock.tv_usec);
 	}
 	sx_sunlock(&allproc_lock);
 

==== //depot/projects/soc2009/trasz_limits/sys/sys/container.h#13 (text+ko) ====

@@ -75,7 +75,8 @@
 #define	RUSAGE_NSEMOP		20
 #define	RUSAGE_NSHM		21
 #define	RUSAGE_SHMSIZE		22
-#define	RUSAGE_MAX		RUSAGE_SHMSIZE
+#define	RUSAGE_WALLCLOCK	23
+#define	RUSAGE_MAX		RUSAGE_WALLCLOCK
 
 /*
  * 'container' defines resource consumption for a particular



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201011042127.oA4LR0cm032152>