This patch file is a diff between the current kernel which I use and the sitsang2 patched kernel provided by Intel. It includes a combination of patches, listed below. To use it, apply the sitsang2 patches to a vanilla 2.4.19 Linux kernel, then apply my patches.
$ bzip2 -dc linux-2.4.19.tar.bz2 | tar xvf - $ cd linux-2.4.19/ $ gzip -dc ../patch-2.4.19-sitsang2.gz | patch -p1 $ gzip -dc ../leo.patch.gz | patch -p1 $ make sitsang_config $ make oldconfig $ make dep $ make zImage $ make modules
WDONTREAP
parameter for
wait()
The kernel/collect.o
module allows up to 8 variables to be
recorded on 10ms intervals (each timer tick). It has been used to generate
graphs such as the one below, tracking cache miss rates, but may be used to
record any variables accessible to the kernel.
To select the variables to record, edit kernel/collect.c
. The
following lines record the data:
data[0] = jiffies; data[1] = current->pid; data[2] = current->pmu.evt0; .... data[7] = 0;
Recompile using make modules
and copy the new
collect.o
to the Sitsang.
Once loaded, the module creates a /proc/data_collection
file
providing access to the data. Any write to this file will clear all data.
Reading from this file will return the data as ascii text, one 10ms interval
per line, with the 8 values separated by spaces. Note that this file is
constantly changing as new data is added, so it should be read atomically,
using a command like dd
. Example:
$ echo 0 > /proc/data_collection $ ./my-test-program $ dd if=/proc/data_collection of=my-data.txt bs=1000000 count=1
The WDONTREAP
parameter is a quick hack to make data collection
easier using the DWCS real-time scheduler. DWCS keeps statistics in each
process's task_struct
. This data may be read using a proc file,
/proc/dwcs/info
.
However, the standard behavior of the wait(2)
system call is to
suspend the current process to wait for a child PID to terminate, then it frees
the resources of the child process, destroying the task_struct
with our DWCS statistics.
The WDONTREAP
parameter prevents wait()
from freeing
any resources. Thus, the process will still exist as a zombie so we can
read statistics from its task_struct
.
Monday, September 13, 2004-- Updated DVS module to support automatic voltage scaling upon frequency changes. Updated default configuration. Removed frequency change handler in the PXA framebuffer driver, which was causing slow frequency changes. Download 9/13/04 Patch File
Friday, August 20, 2004-- Original patch file. Download 8/20/04 Patch File
Last Modified: 9/13/04 by lcs@cc
Return to Intel Sitsang Resources |
Leo Singleton