summaryrefslogtreecommitdiff
path: root/init
diff options
context:
space:
mode:
authorAndrew Morton <akpm@zip.com.au>2002-07-18 21:09:17 -0700
committerLinus Torvalds <torvalds@home.transmeta.com>2002-07-18 21:09:17 -0700
commite177ea28e7eded3490174487c81e5bef8a2c4d95 (patch)
tree3a4422d4f04b7643fd14e809e7b8385246122bd9 /init
parent6a2ea3382b534e937ba2153f4a0c6021e04a1ef5 (diff)
[PATCH] VM instrumentation
A patch from Rik which adds some operational statitics to the VM. In /proc/meminfo: PageTables: Amount of memory used for process pagetables PteChainTot: Amount of memory allocated for pte_chain objects PteChainUsed: Amount of memory currently in use for pte chains. In /proc/stat: pageallocs: Number of pages allocated in the page allocator pagefrees: Number of pages returned to the page allocator (These can be used to measure the allocation rate) pageactiv: Number of pages activated (moved to the active list) pagedeact: Number of pages deactivated (moved to the inactive list) pagefault: Total pagefaults majorfault: Major pagefaults pagescan: Number of pages which shrink_cache looked at pagesteal: Number of pages which shrink_cache freed pageoutrun: Number of calls to try_to_free_pages() allocstall: Number of calls to balance_classzone() Rik will be writing a userspace app which interprets these things. The /proc/meminfo stats are efficient, but the /proc/stat accumulators will cause undesirable cacheline bouncing. We need to break the disk statistics out of struct kernel_stat and make everything else in there per-cpu. If that doesn't happen in time for 2.6 then we disable KERNEL_STAT_INC().
Diffstat (limited to 'init')
-rw-r--r--init/main.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/init/main.c b/init/main.c
index 922ea974aaf9..81879f47768f 100644
--- a/init/main.c
+++ b/init/main.c
@@ -28,6 +28,7 @@
#include <linux/bootmem.h>
#include <linux/tty.h>
#include <linux/percpu.h>
+#include <linux/kernel_stat.h>
#include <asm/io.h>
#include <asm/bugs.h>
@@ -502,6 +503,8 @@ static int init(void * unused)
free_initmem();
unlock_kernel();
+ kstat.pgfree = 0;
+
if (open("/dev/console", O_RDWR, 0) < 0)
printk("Warning: unable to open an initial console.\n");