2001-07-06 17:49:33

by Zach Brown

[permalink] [raw]
Subject: [PATCH] 2.4.7-pre3 kernel_stat -> cpu_stat[NR_CPUS]

This patch does the following:

- creates a cacheline aligned/padded struct cpu_stat[NR_CPUS].
- moves the [NR_CPUS] members of kernel_stat into cpu_stat

This moves the stat data that a cpu will update into a contiguous region.
Previous users of kernel_stat would compete for an array's cacheline
with other cpus.

- creates /proc/cpu/[0-9]+/ and fs/proc/proc_cpu.c with code for managing
files in the cpu's directories.

This should be useful for rusty's */active and arjan/rmk's */frequency.
I have no strong feelings about where this lives or what it should be
named.

- adds collection of fault statistics and adds 'context migration'
recording, per cpu.
- updates users of kernel_stat in proc, reports shouldn't change
- updates every friggin' user of kstat.irqs[] in arch/ with a macro so
that we never have to do this again.

The patch is rather large, due to that last bit. It can be found at

http://www.osdlab.org/sw_resources/cpustat/cpustat-2.4.7.pre3-1.diff

with a tool for summarizing /proc/cpu/*/stat at:

http://www.osdlab.org/sw_resources/cpustat/index.shtml

I'd like to get this sent to Linus soon, but wanted to run the
/proc/cpu/* stuff by l-k one last time.

- z