Geek; Programmer; Pythonista; FOSS enthusiast, evangelist and contributor; Melange developer; opinionated about programming languages; crazy about cars and air-planes; choosy in watching movies; loves Bangalore, San Francisco and Southern California; and most importantly addicted to coffee!
Madhusudan C.S.
map (thoughts) => words;   reduce (words) => this;
July 12, 2008, 1:25 p.m.

This is a rough roadmap to complete the project

Legend

* - Has already been implemented.
** - I already know the where the information is exactly available.
*** - I know where the information is available roughly, but need to look in detail to extract the exact information.
**** - The information may be available, but needs to be searched to know where it will be.
***** - I fear information may not be available.
~~~~~ - Need not be implemented.

File

/proc/<PID>/stat

* pid

* comm

* state

* ppid

* pgrp

* session

* tty_nr

* tpgid

** minflt
The number of minor faults the process has made which have not required loading a memory page
from disk.

*** cminflt
The number of minor faults that the process’s waited-for children have made.

** majflt
The number of major faults the process has made which have required loading a memory page from
disk.

*** cmajflt
The number of major faults that the process’s waited-for children have made.

** utime
The number of jiffies that this process has been scheduled in user mode.

** stime
The number of jiffies that this process has been scheduled in kernel mode.

** cutime
The number of jiffies that this process’s waited-for children have been scheduled in user
mode.

** cstime
The number of jiffies that this process’s waited-for children have been scheduled in kernel mode.

** priority
The standard nice value, plus fifteen. The value is never negative in the kernel.

*** nice
The nice value ranges from 19 to -19.

** num_threads
Number of threads in this process.

*** starttime
The time in jiffies the process started after system boot.

**** vsize
Virtual memory size in bytes.

** rss
Resident Set Size: number of pages the process has in real memory, minus 3 for administrative
purposes. This is just the pages which count towards text, data, or stack space. This does not
include pages which have not been demand-loaded in, or which are swapped out.

*** signal
The bitmap of pending signals.

*** blocked
The bitmap of blocked signals.

*** sigignore
The bitmap of ignored signals.

*** sigcatch
The bitmap of caught signals.

** policy
Scheduling policy (see sched_setscheduler(2)).

File

/proc/<PID>/statm

** resident
resident set size

*** size
total program size

*** text
text (code)

Other Per-PID Files

** /proc/<PID>/cwd

** /proc/<PID>/exe

** /proc/<PID>/environ

Non Per-PID Files

** /proc/version

File

/proc/<PID>/stat

**** rlim
Current limit in bytes on the rss of the process (usually 4294967295 on i386).

**** startcode
The address above which program text can run.

**** endcode
The address below which program text can run.

**** startstack
The address of the start of the stack.

**** kstkesp
The current value of esp (stack pointer), as found in the kernel stack page for the process.

**** kstkeip
The current EIP (instruction pointer).

**** exit_signal
Signal to be sent to parent when we die.

File

/proc/<PID>/statm

**** share
shared pages

**** data
data/stack

Other Per-PID File

**** /proc/<PID>/root

Non Per-PID Files

**** /proc/stat

**** /proc/meminfo

File

/proc/<PID>/stat

***** wchan
This is the "channel" in which the process is waiting. It is the address of a system call, and
can be looked up in a namelist if you need a textual name. (If you have an up-to-date
/etc/psdatabase,

***** processor
CPU number last executed on.

***** rt_priority
Real-time scheduling priority

***** delayacct_blkio_ticks
Aggregated block I/O delays, measured in clock ticks (centiseconds).

***** flags
PF_* fields defined in
sched.h>

~~~~~ itrealvalue
> The time in jiffies before the next SIGALRM is sent to the process due to an interval timer.

~~~~~ nswap
Number of pages swapped (not maintained).

~~~~~ cnswap
Cumulative nswap for child processes (not maintained).

File

/proc/<PID>/statm

~~~~~ lib
library (not required)

~~~~~ dt
dirty pages (not required)

-- Happy hack,
Madhusudan.C.S, one who always loves to Hack Kernel code

comments powered by Disqus