Linux tunables inventory




Overview

The objective of this document is to draw up an inventory of the various files that can be found under /proc/sys. These files are used to get or change the values of some kernel variables. This inventory should lead to find the relationship that could exist between some of these tunables. The final goal being to reach an automatic ajdustment of the kernel tunables: make the kernel adjust some of its variables in case of resources shortage.

In some situations, it is not necessary to wait for the kernel to reach extreme conditions: the applications can themselves tune some kernel variables. For example, a data base installation script can tune things such as shared memory, message queues and files tunables. These applications also need to check come system requirements (such as amount of RAM and swap space). Thus, in a second step, this document will try to list the various ways developers have to manipulate the kernel configuration information and tunables. The goal of this survey would be to provide a standard API, built on top of the existing mechanisms (in order to maintain backward compatibility), that would be used by the applications to manipulate the information and tunables from the kernel.

Note that the various interfaces that exist today can be distinguished by what the user wants to do:

Contents

1. /proc/sys
    1.1. /proc/sys/kernel
    1.2. /proc/sys/vm
    1.3. /proc/sys/fs
    1.4. /proc/sys/net
    1.5. /proc/sys/proc
    1.6. /proc/sys/debug
    1.7. /proc/sys/dev
    1.8. /proc/sys/cpu
    1.9. /proc/sys/appldata
    1.10. /proc/sys/lasat
    1.11. /proc/sys/pm
    1.12. /proc/sys/sh64
    1.13. /proc/sys/abi
    1.14. /proc/sys/bus
    1.15. /proc/sys/sunrpc
    1.16. /proc/sys/rxrpc
2. sysconf() family
    2.1. sysconf(3)
    2.2. (f)pathconf(3)
    2.3. confstr(3)
    2.4. getconf(1)
3. sysfs
Appendix A. /proc/sys/net hierarchy
Appendix B. /proc/sys/dev hierarchy
End of Document





1. /proc/sys

This is the place where kernel tunables can be found. Most of the files in this area are writable: they correspond to kernel variables that can be dynamically changed. Among these files some are read-only: they give statistics, and more generally information about the running kernel.
In the following tables, unless explicitely stated, all the files are accessible in read-write mode.

Note: the /proc/sys files found in the following chapters are based on search in linux-2.6.9 source tree. This means that some of them might have become deprecated, while some others might have been added in later releases.

1.1. /proc/sys/kernel


node
leaf
default value
meaning
access
variable
Notes

unknown_nmi_panic
0
NMI - Non Maskable Interrupts.
Affects behavior of handling NMI. If non-zero, unknown NMI is trapped and the panic occurs.
At that time, kernel debugging information is displayed on the console.

unknown_nmi_panic


ngroups_max
0x10000
# of supplementary group IDs for a given process.

ngroups_max (not used)


printk_ratelimit_burst
10
# of messages that can be sent before rate limiting kicks in.

printk_ratelimit_burst


printk_ratelimit
5*HZ
Minimum time between kernel messages that are rate limited.
0: disables rate limiting.

printk_ratelimit_jiffies


panic
depends on arch
generally 180
time before rebooting on a panic.

panic_timeout


panic_on_oops
0
If 1, halt the system upon fatal exception. If panic != 0 also reboot the system.
If 0, try to continue.

panic_on_oops


pid_max
0x8000
PID allocation wrap value.
When the kernel's next PID value reaches this value, it wraps back to a min PID value.

pid_max


overflowgid
0xFFFE
Useful for architectures that did not support 32-bit GIDs (i.e. arm, i386, m68k, sh, and sparc32).
If GID > 0xFFFF, overflowgid will be returned to applications that use the old 16-bit GID system calls.

overflowgid
[0, 0xFFFE]

overflowuid
0xFFFE
Useful for architectures that did not support 32-bit UIDs.
If UID > 0xFFFF, overflowuid will be returned to applications that use the old 16-bit UID system calls.

overflowuid
[0, 0xFFFE]
pty
nr

# if pseudo-terminals currently inuse
RO
ptm_driver->refcount

max
0x1000
Max # of pseudo-terminals

pty_limit

random
uuid

/dev/random is a PRNG (Pseudo Random Number Generator)
Random string generated afresh for each read
RO


boot_id

Random string generated once
RO


write_wakeup_threshold
128
# of bits of entropy below which we wake up process that are selecting or polling on write access to /dev/random.

random_write_wakeup_thresh

read_wakeup_threashold
64
Min # of bits of entropy required for waking up processes that sleep waiting for entropy from /dev/random.

random_read_wakeup_thresh

entropy_avail

Available entropy.
RO


poolsize
512
Size of the entropy pool.
Currently, the choices are 32, 64, 128, 256, 512, 1024, 2048

sysctl_poolsize


threads-max
mempages / (THREAD_SIZE / PAGE_SIZE) / 8
Max # of threads

max_threads
> 20

ctrl-alt-del
1
If 0, ctrl-alt-del is trapped and sent to the init(1) program to handle a graceful restart.
If > 0, immediate reboot, without even syncing the dirty buffers.

C_A_D


cad_pid
1
If Ctrl Alt Del dos not lead to a reboot (C_A_D = 0) pid to kill (init process) when Ctrl Alt Del is typed.

cad_pid


sysrq
1
Whether kernel reacts on sysrq (System Request) keys or just ignores them. The sysrq is the same as the Print Screen key.

sysrq_enabled
if MAGIQ_SYSRQ (.config)

sem
0xFA
0x7D00
0x20
0x80
SEMMSL: max # of semaphores per id
SEMMNS: max # of semaphores in system (SEMMNI * SEMMSL)
SEMOPM: max # of ops per semop call
SEMMNI: max # of sempahore identifiers

sem_ctls[0]: sc_semmsl
sem_ctls[1]: sc_semmns
sem_ctls[2]: sc_semopm
sem_ctls[3]: sc_semmni
<= 8000
<= INT_MAX
<= 1000
<= 0x8000

msgmnb
0x4000
Max size of a msg queue (# of bytes on queue)

msg_ctlmnb
<= INT_MAX

msgmni
0x10
Max # of msg queue ids

msg_ctlmni
<= 0x8000

msgmax
0x2000
Max size, in bytes, of any single message in a msg queue

msg_ctlmax
<= msg_ctlmnb
<= INT_MAX

shmmax
0x2000000
Max size, in bytes, of a shm segment

shm_ctlmax


shmmni
0x1000
Max # of shm segment ids

shm_ctlmni


shmall
SHMMAX / PAGE_SIZE * (SHMMNI / 16)

0x200000000 / PAGE_SIZE
Max # of shm segment pages system wide

shm_ctlall


acct
4
2
30
highwater: if > acct_parm[0] % of free disk space, resume accounting
lowwater: if < acct_parm[1] % of free disk space, suspend accounting
frequency: acct_parm[2] seconds timeout between checks for free space

acct_parm[0] : RESUME
acct_parm[1] : SUSPEND
acct_parm[2] : ACCT_TIMEOUT
highwater > lowwater

sg-big-buff
0x8000
Size of the buffer reserved by the sg (SCSI Generic) driver for each file descriptor guaranteeing that at least that buffer size will be available for each request on the file descriptor.
RO

if CHR_DEV_SG (in .config)

hotplug
/sbin/hotplug
Path for the hotplug policy agent

hotplug_path
if HOTPLUG (.config)

modprobe
/sbin/modprobe
Path for the module loader

modprobe_path
if KMOD (.config)

printk
7
4
1
7
console_loglevel: messages with a higher priority than this (i.e. loglevel < to this) will be printed to the console.
default_message_loglevel: message without an explicit priority will be printed with this priority.
minimum_console_loglevel: minimum (highest) value to which console_loglevel can be set (console_loglevel is set to this when logging to console is disabled).
default_consoole_loglevel: default value for console_loglevel (console_loglevel is set to this when logging to console is re-enabled)

console_printk[0]
console_printk[1]
console_printk[2]
console_printk[3]
minimum_console_loglevel < default_console_loglevel

real-root-dev
depends on configuration (minor / major of /dev/root)
device number of the device to be used as the normal root file system (see http://www.die.net/doc/linux/man/man4/initrd.4.html)

real_root_dev
BLK_DEV_INITRD (.config)
looks like it can only be changed by /linuxrc ???

cap-bound
0xEFF
Capability bounding set.
Mask that the kernel uses to determine which individual capabilities work when a program is exec'd. Each capability, enumerated in <linux/capability.h>, is a bit that if set, forces the capability to follow the legacy behavior.
(Confusingly, this bit mask parameter is expressed as a signed decimal number in /proc/sys/kernel/cap-bound).

cap_bset
Only the init process may set bits in the capabality bounding set; other than that, the superuser may only clear bits in this set.

tainted
0
Non-zero if the kernel has been tainted. Numeric values, which can be ORed together:
1
A module with a non-GPL license has been loaded, this includes modules with no license. Set by modutils >= 2.4.9 and module-init-tools.
2
A module was force loaded by "insmod -f". Set by modutils >= 2.4.9 and module-init-tools.
4
Unsafe SMP processors: SMP with CPUs not designed for SMP.
The primary reason for this file is to tell the kernel debuggers if this is a clean kernel or if anything unusual has occured.
RO
tainted


core-pattern
core
Specifies a core dump file pattern name.
. core_pattern is used as a pattern template for the output filename; certain string patterns (beginning with '%') are substituted with their actual values.
. corename format specifiers:
%<NUL>
'%' is dropped
%%
output one '%'
%p
pid
%u
uid
%g
gid
%s
signal number
%t
UNIX time of dump
%h
hostname
%e
executable filename
%<OTHER>
both are dropped


core_pattern


core_uses_pid 0
If 1, the coredump filename becomes core.PID.
If core_pattern does not include "%p" (default does not) and core_uses_pid is set, the .PID will be appended to the filename.

core_uses_pid

vdso
0
Stand for Virtual Dynamic Shared Object.
Only useful for vmware


not found in the code
Looks like RedHat specific

print-fatal-signals
0



not found in the code
Looks like RedHat specific

exec-shield
1
Exec-shield is a security-enhancing modification to the Linux kernel that makes large parts of specially-marked programs -- including their stack -- not executable. This can reduce the potential of some security holes, such as buffer overflow exploits.
The exec-shield feature provides protection against stack, buffer or function pointer overflows, and against other types of exploits that rely on overwriting data structures and/or putting code into those structures.

Each value represents a different level of security:
0
always-disabled
1
default disabled, except binaries that enable it
2
default enabled, except binaries that disable it
3
always-enabled

IMPORTANT: security-relevant applications that were started while the exec-shield was disabled, will have an executable stack and will thus have to be restarted if the exec-shield is enabled again.


not found in the code
Applies to RHEL3 U3+ and Fedora Core

exec-shield-randomize 1
Exec-Shield can also randomize the virtual memory addresses at which certain binaries are loaded. This randomized VM mapping makes it more difficult for a malicious application to improperly access code or data based on knowledge of the code or data's virtual address.
If 1, enables exec-shield to randomize VM mappings.


not found in the code
Applies to RHEL3 U3+ and Fedora Core

domainname (none)
Used to set NIS/YP domainname of your box in exactly the same way as the command domainname, i.e.:
# echo "mydomain" > /proc/sys/kernel/domainname
has the same effect as
# domainname "mydomain"

Note, however, that the classic
darkstar.frop.org has the hostname "darkstar" and DNS (Internet Domain Name Server) domainname "frop.org", not to be confused with the NIS (Network Information Service) or YP (Yellow Pages) domainname. These two domain names are in general different. For a detailed discussion see the hostname(1) man page.

system_utsname.domainname

hostname (none)
Used to set the NIS/YP hostname of your box in exactly the same way as the command hostname, i.e.:
# echo "darkstar" > /proc/sys/kernel/hostname
has the same effect as
# hostname "darkstar"

ystem_utsname.nodename

version

The '#X' means that this is the Xth kernel built from this source base and the date behind it indicates the time the kernel was built.
Generated during the build in include/linux/compile.h

The only way to tune these values is to rebuild the kernel :-)
RO
system_utsname.version UTS_VERSION

oserelase

generated during the build into include/linux/version.h from the variable KERNELRELEASE RO
system_utsname.release UTS_RELEASE

ostype

hardcoded in include/linux/uts.h
RO

UTS_SYNAME

reboot-cmd

Reboot command for Sparc machines.

If the "fill-reboot-cmd" option is used in SILO (Sparc Boot Loader), it causes this file to be initialized by the device SILO booted from, image name of the kernel being loaded and all arguments to it specified either in the configuration file, or in the input line. This means that if the user does not modify that file and reboots the system, it should load the same kernel as last time and pass it the same arguments.

reboot_command
#ifdef __sparc__

stop-a
1
If 1, the stop_A key sequence is enabled (sends a break signal to access the PROM through the serial cable without having to reboot).
If 0, disabled.

stop_a_enabled
#ifdef __sparc__

scons-poweroff
1
???
If 1 serial console poweroff on halt
???

scons_pwroff #ifdef __sparc__

soft-power
1
if 1 soft power swithch enabled (allows the user to switch off the system)

pwrsw_enabled #ifdef __hppa__

unaligned-trap
1
if 0, unaligned access to memory causes the program to crash (SIGBUS).
I 1, unaligned access is "allowed"

unaligned_enabled
#ifdef __hppa__

ieee_emulation_warnings 1
disables/enables the display of warning messages if an emulation is not implemented

sysctl_ieee_emulation_warnings
if ARCH_S390 (.config)
if MATHEMU (.config)

hz_timer
0
If 0, the HZ timer is disabled
If 1, the HZ timer is activated

If the HZ timer is switched off when the system
is going idle, this helps z/VM to detect that the Linux system is idle. VM can then swap it out which reduces memory usage. It also reduces the overhead of idle systems.

sysctl_hz_timer if ARCH_S390 (.config)
if
NO_IDLE_HZ (.config)

userprocess_debug if PROCESS_DBUG 1 else 0
If set to 1, enables the display of symptom messasges upon program trap.
If 0, no symptom message is displayed

sysctl_userprocess_debug if ARCH_S390 (.config)

powersave-nap 1 on platforms that support it
If 1, NAP mode is used for powersaving.
If 0, DOZE mode is used.

The Doze mode is used for putting the machine in a low-power state in which all activity is stopped except for Time Base/Decrementer updates and bus snooping. While in the Doze mode, an external asynchronous interrupt, a system management interrupt, a decrementer interrupt, a reset (hard or soft), or a machine check will bring the machine back to normal operation.

The NAP mode is used to achieve further power savings. In this mode, only the Time Base is operating.

powersave_nap
(ppc specific)

l2cr

If 1 the L2 cache of G3 processor boards is enabled.
If 0, the L2 cache is disabled.

sets the L2Cr SPR
(ppc specific)
perfmon
debug
0
Turns on (1) / off (0) perfmon debugging

pfm_sysctl.debug


debug_ovfl
0
Turns on (1) / off (0) perfmon debugging in overflow handler

pfm_sysctl.debug_ovfl


fastctxsw
0
Turns on (1) / off (0) fast context switch

pfm_sysctl.fastctxsw


expert_mode
0
Turns on (1) /off (0) read/write checker

pfm_sysctl.expert_mode


1.2. /proc/sys/vm

This is the place where VM tunables can be found

leaf
default value
meaning
access
variable
Notes
legacy_va_layout
0
This is an x86-only feature
The legacy mode splits a tasks vm into an area for heap, mmaps, and stack at fixed points. Notably, mmap space started at 0x40000000, and new mappings were searched from there scanning upward. While stack grew down into that area and heap grew up into that area.

The non-legacy (flexmmap) approach, starts looking for mmap space just below the largest possible (rlimit) stack size and scans downward. This gives the most possible space to either brk or mmap heavy applications, since the space doesn't start off as fragmented.

sysctl_legacy_va_layout
#ifdef HAVE_ARCH_PICK_MMAP_LAYOUT

>= 0
vfs_cache_pressure
100
Controls the tendency of the kernel to reclaim the memory which is used for caching of directory and inode objects. It is used to make the # of unused inodes an dentries used by the system appear to be smaller or larger to the slab shrinker function (see shrink_dcache_memory() in fs/dcache.c).

. If 100 (default value) the kernel will attempt to reclaim dentries and inodes at a "fair" rate with respect to pagecahe and swapcache reclaim.
. If < 100 causes the kernel to prefer to retain dentry and inode caches.
. if > 100 causes the kernel to prefer to reclaim dentries and inodes.

sysctl_vfs_cache_pressure
>= 0
block_dump
0
If non zero enables block I/O debugging.

When this flag is set, Linux reports all disk read and write operations that take place, and all block dirtyings done to files. This makes it possible to debug why a disk needs to spin up, and to increase battery life even more. The output of block_dump is written to the kernel output, and it can be retrieved using "dmesg". When you use block_dump and your kernel logging level also includes kernel debugging messages, you probably want to turn off klogd, otherwise the output of block_dump will be logged, causing disk activity that is not normally there.

block_dump
>= 0
laptop_mode
0
Controls "laptop mode". Laptop mode is used to minimize the time that the hard disk needs to be spun up, to conserve battery power on laptops. It has been reported to cause significant power savings.

If set, any physical disk I/O (that might have caused the hard disk to spin up) causes Linux to flush all dirty blocks. The result of this is that after a disk has spun down, it will not be spun up anymore to write dirty blocks, because those blocks had already been written immediately after the most recent read operation.

The value of laptop_mode determines the time between the occurence of disk I/O and when the flush is triggered. A sensible value for the knob is 5 seconds. If 0 disables laptop mode.

To increase the effectiveness of the laptop_mode strategy, the laptop_mode control script increases dirty-expire_centisecs and dirty_writeback_centisecs in /proc/sys/vm to about 10 minutes (by default), which means that pages that are dirtied are not forced to be written to disk as often.

laptop_mode
>= 0
dirty_expire_centisecs
3000
The longest # of centiseconds for which data is allowed to remain dirty. After this interval, dirty data is old enough to be eligible for writeout the next time a pdflush daemon wakes up.

dirty_expire_centisecs

dirty_writeback_centisecs 500
Interval between periodical wakeups of the pdflush writeback daemons (they periodically wake up and write 'old' data out to disk).

If 0, disables periodic writeback altogether.

dirty_writeback_centisecs

dirty_background_ratio
10
The percentage of memory that is allowed to contain "dirty" or unsaved data. Once this threshold is reached, pdflush writeback daemon will start writing out dirty data.

Note that the behaviour of dirty_background_ratio is quite different when laptop mode is active and when it isn't.
Laptop mode inactive: threshold percentage at which background writeouts start taking place.
Laptop mode active: background writeouts are disabled ==> only determines how much writeback is done when dirty_ratio is reached.

dirty_background_ratio
< dirty_ratio

[0, 100]
dirty_ratio
40
Contains, as a percentage of total system memory, the # of pages at which a process that is generating disk writes will itself start writing out dirty data.

If laptop mode is active: the percentage of memory that is allowed to contain "dirty" or unsaved data before a writeback is forced.

vm_dirty_ratio
<= unmapped_ratio
((100 - (wbs->nr_mapped * 100) / total_pages) / 2)

[0, 100]
max_map_count
0x10000
Max # of memory map areas a process may have. Memory map areas are used as a side-effect of calling malloc, directly by mmap and mprotect, and also when loading shared libraries.

While most applications need less than a thousand maps, certain programs, particularly malloc debuggers, may consume lots of them, e.g., up to one or two maps per allocation.

sysctl_max_map_count

min_free_kbytes
0x400
Used to force the Linux VM to keep a minimum number of kilobytes free. The VM uses this number to compute a pages_min value for each lowmem zone in the system. Each lowmem zone gets a number of reserved free pages based proportionally on its size.

min_free_kbytes
>= 0
lower_zone_protection
0
Determines how aggressive the kernel is in defending the lowmem zones.
0 means no protection at all.

For some specialized workloads on highmem machines it is dangerous for the kernel to allow process memory to be allocated from the "lowmem" zone. This is because that memory could then be pinned via the mlock() system call, or by unavailability of swapspace.

And on large highmem machines this lack of reclaimable lowmem memory can be fatal.

So the Linux page allocator has a mechanism which prevents allocations which _could_ use highmem from using too much lowmem. This means that a certain amount of lomem is defended from the possibility of being captured into pinned user memory.

(The same argument applies to the old 16 MB ISA DMA region. This mechanism will also defend that region from allocations which could use highmem or lowmem).

sysctl_lower_zone_protection
zone[i]->protection = zone[i+1]->protection + zone[i+1]->pages_low * lower_zone_protection

>= 0
hugetlb_shm_group
0
Group id for the users who wish to use hugetlb pages via shared memory segments.

Once the kernel with Hugetlb page support is built and running, a user can use either the mmap system call or shared memory system calls to start using huge pages.

sysctl_hugetlb_shm_group
if HUGETLB_PAGE (.config)
nr_hugepages
0
Sets the current # of configured (i.e. reserved) hugetlb pages in the kernel. Changing this value leads to allocation or deallocation of hugetlb pages.

The allocation (or deallocation) of hugetlb pages is possible only if there are enough physically contiguous free pages in the system (freeing of hugepages is possible only if there are enough hugetlb pages free that can be transferred back to regular memory pool).

max_huge_pages
if HUGETLB_PAGE (.config)

>= hugetlb_zero (0)
<= hugetlb_infinity (~0UL)
swappiness
60
Drives the swappiness decision: higher means more swappy (i.e. swaps mapped pages)

vm_swappiness
[0, 100]
nr_pdflush_threads

The # of currently running pdflush threads (threads for writing back dirty data)
RO
nr_pdflush_threads

page-cluster
2 for < 16 M memory

3 else
Tunes the readahead of pages during swap: in order to avoid excessive disk seeks, multiple pages are read on a page fault. By default the # of pages read ahead is dependent on the amount of physical memory.

The number of pages the kernel reads in at once is equal to 2 ^ page-cluster.

There may be some small benefits in tuning this to a different value for a swap-intensive workload.

page_cluster

overcommit_memory
0 if no virtual memory

1 if small memory
Value which sets the general kernel policy toward granting memory allocations.
0
the kernel will check to see if there's enough memory free to grant a memory request to a malloc call from an application. If there's enough memory then the request is granted. Otherwise it is denied and an error code is returned to the application.
1
"always overcommit" policy: the kernel will allow all memory allocations, regardless of the current memory allocation state.
Appropriate for some scientific applications
2
"never overcommit" policy (attempts to prevent any overcommit of memory): the total address space sommit for the system is not permitted to exceed swap + a percentage of physical RAM (see below).
Enabling this feature can be somewhat helpful in environments which allocate large amounts of memory expecting worst case scenarios, but do not use it all.


sysctl_overcommit_memory

overcommit_ratio
50
When overcommit_memory is set to 2, the committed address space is not permitted to exceed swap + this percentage of physical RAM.

Depending on the ratio, in most situations this means a process will not be killed while accessing pages but will receive errors on memory allocation as appropriate.

sysctl_overcommit_ratio

cmm_pages
0
CMM = Collaborative Memory Management
Looks like a memory allocator built on top of VM: each page allocated by CMM is "reserved". This artificially reduces the machine memory size.

This tunable sets the pages to be reserved by the CMM.

cmm_pages_target
s390 specific
if CMM_PROC (.config)
cmm_timed_pages
0
Used to increment the number of pages temporarily reserved by the CMM

cmm_timed_pages_target
s390 specific
if CMM_PROC (.config)
cmm_timeout
0
0
<pages> <seconds>
<seconds> sets the timer timeout: every <seconds> secs <pages> temporarily reserved pages are released.

cmm_timeout_pages
cmm_timeout_seconds
s3390 specific
if CMM_PROC (.config)

1.3. /proc/sys/fs

This is the place where filesystems tunables can be found. Many statistics can be found in the files that reside in this directory.

node
leaf
default value
meaning
access
variable
notes

inode-state
Only 1st 2 entries are meaningful:
. nr_inodes: the # of allocated inodes
. nr_unused: the # of unused inodes
. dummy[5]
RO
inodes_stat.nr_inodes
inodes_stat.nr_unused


inode-nr
2 first fields of inode-state
RO
inodes_stat


file-nr

. nr_files: the # of allocated file handles
. nr_free_files: the # of unused file handles
. max_files: the max # of file handles
RO
files_stat.nr_files
files_stat.nr_free_files
files_stat.max_files
nr_free_files is never referenced in the code

file-max 0x2000
Max # of file handles

files_stat.max_files


dentry-state

. nr_dentry: # of allocated directory cache entries
. nr_unused: # of unused dcache entries
. age_limit: "# of secs after which a dcache entry may be reclaimed"
. want_pages: "nonzero when shrink_dcache_pages() has been called and the dcache isn't pruned yet.
RO
dentry_stat.nr_dentry
dentry_stat.nr_unused
dentry_stat.age_limit
dentry_stat.want_pages
age_limit is never referenced in the code.
want_pages neither

overflowuid 0xFFFE
useful for filesystems that only support 16-bit UIDs (Linux supports 32-bit uids).
If UID > 0xFFFF it is translated to this fixed value before being written to disk.

fs_overflowuid
[0, 0xFFFE]

overflowgid
0xFFFE
useful for filesystems that only support 16-bit GIDs (Linux supports 32-bit gids).
If GID > 0xFFFF it is translated to this fixed value before being written to disk.

fs_overflowgid
[0, 0xFFFE]

leases-enable
1
if 1, leases are allowed to be established on a file (fcntl(F_SETLEASE)).
A file lease provides a mechanism whereby the process holding the lease is notified (via delivery of a signal) when another process tries to open() or truncate() that file.


leases_enable


lease-break-time
45
time after which a lease is broken on a file

lease_break_time


dir-notify-enable
1
if 1, file and directory changes notification is allowed (fcntl(F_NOTIFY)).

dir_notify_enable


aio-nr
0
Current system-wide # of AIO requests.
RO
aio_nr


aio-max-nr
0x10000
System-wide max # of AIO requests.

aio_max_nr

mqueue

(POSIX msg queues)
queues_max
0x100
Max # of message queues

queues_max

msg_max
10
Max # of messages in each queue

msg_max
[0, 0x20000 / sizeof(void*)]
msgsize_max
0x2000
Max message size

msgsize_max
[0x2000, INT_MAX]
quota

(disk quota)
lookups

# of lookups in the dquot hash list or in the dquot dirty list
RO
dqstats.lookups

drops

# of times dqput has been called (decrements dquot references and releases it on last reference)
RO
dqstats.drops

reads

# of times a dquot has been read
RO
dqstats.reads

writes

# of times a dquot has been written or commited
RO
dqstats.writes

cache_hits

# of times a dquot has been found in the hashed list
RO
dqstats.cache_hits

allocated_dquots

# of dquots on the dq_inuse list (i.e. # of allocated dquots)
RO
dqstats.allocated_dquots

free_dquots

# of dquots on the free_dquots list (i.e. # of unused dquots)
RO
dqstats.free_dquots

syncs

# of times quotas have been sync'd (calls to quotaclt(Q_SYNC))
RO
dqstats.syncs

coda
timeout
30
# of secs after which a request waiting to be processed by Venus (cache manager) will be dequeued upon signal receipt

coda_timeout

hard
0
If 1, waiting for Venus to process a request is not interruptible (i.e. signals can be received)

coda_hard

vfs_stats

If written, resets coda_vfs_stats. This is a structure that contains statistics on the # of operations in the coda FS: open, mkdir, sync, etc.
If read, the statistics are output.

coda_vfs_stats

cache_inv_stats

If written, resets coda_cache_inv_stats. This is a structure that contains statistics on the coda cache invalidation.
If read, the statistics are output.

coda_cache_inv_stats

fake_stats



coda_fake_statfs
Not referenced in the code
xfs
restrict_chown
1
If 1, a file owner is not permitted to change that file ownership + can change the group id only to a group of which he or she is a member.
If 0, only "standard" restictions when changing a file ownership.

restricted_chown
(xfs_params.restrict_chown.val)

irix_sgid_inherit
0
If 1, S_ISGID bit of a new file is cleared if that file's GID does not match the file creator's GID.

irix_sgid_inherit (xfs_params.sgid_inherit.val)

irix_symlink_mode
0
If 1, link creat mode is affected by umask (0777 & ~umask)
else link creat mode = 0777

irix_symlink_mode (xfs_params.symlink_mode.val)

panic_mask
0
Mask that turns the error reports into panics:

0x00
Errors remain errors
0x01
error in xfs_iflush_int()
0x02
error in xlog_write()
0x04
error in xfs_trans_delete_ail()
0x08
any error / corruption report
0x10
xfs_do_force_shutdown() called due to data corruption
0x20
xfs_do_force_shutdown() called due to IO error
0x40
xfs_do_force_shutdown() called due to log IO error


xfs_panic_mask (xfs_params.panic_mask.val)

error_level
3
Degree of reporting for errors

0
No error reporting
1
some EFSCORRUPTED errors are reported
5
all EFSCORRUPTED errors are reported


xfs_error_level (xfs_params.error_level.val)
[0, 11]
xfssyncd_centisecs
3000
timeout for xfssynd to sync metadata to disk

xfs_syncd_centisecs (xfs_params.syncd_timer.val)
[100, 720000]
[1 sec, 2 hours]
inherit_sync
1
If 1 the flag XFS_DIFLAG_SYNC (inode written synchronously) in a directory is inherited by the files in that directory.
If 0, no inheritance.

xfs_inherit_sync (xfs_params.inherit_sync.val)

inherit_nodump
1
If 1, the flag XFS_DIFLAG_NODUMP (not candidate for backup) in a directory is inherited by the files in that directory.
If 0, no inheritance.

xfs_inherit_nodump (xfs_params.inherit_nodump.val)

inherit_noatime
1
If 1, the flag XFS_DIFLAG_NOATIME (do not update atime upon access) in a directory is inherited by the files in that directory.
If 0, no inheritance.

xfs_inherit_noatime (xfs_params.inherit_noatim.val)

xfsbufd_centisecs
100
timeout for xfsbufd to scan the dirty metadata buffers list

xfs_buf_timer_centisecs (xfs_params.xfs_buf_timer.val)
[50, 3000]
age_buffer_centisecs
1500
Dirty metdata buffer age before flush

xfs_buf_age_centisecs (xfs_params.xfs_buf_age.val)
[100, 720000]
[1 sec, 2 hours]
inherit_nosymlinks
0
If 1, the flag XFS_DIFLAG_NOSYMLINKS (inhibit the use of symlinks) in a directory is inherited by its sub-directories.
If 0, no inheritance.

xfs_inherit_nosymlinks (xfs_params.inherit_nosym.val)

stats_clear

If written, resets xfsstats (per CPU structure that contains xfs statistics).
If read, outputs the xfs statistics.

xfs_stats_clear (xfs_params.stats_clear.val)

nfs
nlm_grace_period
0
Grace period before a retry on a blocked lock

nlm_grace_period
[0, 240]
nlm_timeout
10
Timeout within which a reply to an RPC call should arrive

nlm_timeout
[3, 20]
nlm_udpport
0
Port # if UDP protocol

nlm_udpport
[0, 0xFFFF]
nlm_tcpport
0
Port # if TCP protocol

nlm_tcpport
[0, 0xFFFF]

ntfs-debug
0
If 0 debug messages are disabled.
If !0 debug messages ar enabled.

debug_msgs

binfmt_misc
status
1
Write mode:

0
registering additional binary fomats is disabled
1
registering additional binary formats is enabled
-1
all the previously registered binary formats are cleared

Read mode:
outputs "enabled" or "diabled"

enabled

register

used to register a new binary format
WO



1.4. /proc/sys/net

This is the place where network tunables can be found.
A description table will be added in a future version of this document, it will reflect the files hierarchy presented in Appendix A

1.5. /proc/sys/proc

This directory is empty.

1.6. /proc/sys/debug

leaf
default value
meaning
access
variable
notes
exception-trace
1
If 1, the following events are traced:
. signals not handled
. error during signal processing

exception_trace
x86_64-specific
page-fault-trace
0
If 1 pages faults are traced

page_fault_trace
x86_64-specific

1.7. /proc/sys/dev

This is the place where devices tunables (and many information - RO files) can be found.
A description table will be added in a future version of this document, it will reflect the files hierarchy presented in Appendix B

1.8. /proc/sys/cpu

This is the directory where CPU frequency tunables can be found (used by the CPUFreq driver). For each CPU (ranging from 0 to NR_CPUS) on the machine, there is one directory whose name is the CPU number, that contains the following files:

node
leaf
default value
meaning
access
variable
notes
<cpu_number>


speed-max


RO
cpu_max_freq[<cpu_number>]

speed-min


RO
cpu_min_freq[<cpu_number>]

speed

sets the CPU frequency


[speed-min, speed-max]

1.9. /proc/sys/appldata

leaf
default value
meaning
access
variable
notes
timer 0
Sets the appldata timer status
1 : adds virtual monitoring timers on each online CPU, to collect the statistics data (memory, networking, CPU)
0 : stops the monitoring timers

appldata_timer_active
if APPLDATA_BASE (.config)
interval
10000
Sets the timer interval for data collection (msecs)

appldata_interval
> 0

1.10. /proc/sys/lasat

LASAT boards specific

leaf
default value
meaning
access
variable
notes
cpu-hz

CPU clock
RO
lasat_board_info.li_cpu_hz

bus-hz

Bus speed
RO
lasat_board_info.li_bus_hz

bmid

Base Model id
RO
lasat_board_info.li_bmid
[0, 8].
8 = Unknown
prid

Sets the product id in the EEPROM

lasat_board_info.li_prid
[0, 23]
ipaddr

Sets the IP address

lasat_board_info.li_eeprom_info.ipaddr
if INET (.config)
netmask

Sets the network mask

lasat_board_info.li_eeprom_info.netmask
if INET (.config)
bcastaddr

Sets the broadcast address

lasat_bcastaddr
if INET (.config)
passwd_hash



lasat_board_info.li_eeprom_info.passwd_hash

boot-service
0
If 1, the machine boots to service mode

lasat_boot_to_service

rtc

Sets the Real Time Clock

rtctmp
if DS1603 (.config)
>= 0
namestr

Vendor name (depends on the prid)
RO
lasat_board_info.li_namestr

typestr

Product type (depends on the prid)
RO
lasat_board_info.li_typestr


1.11. /proc/sys/pm

Power management specific

leaf
default value
meaning
access
variable
notes
suspend

If written, a SUSPEND request is sent to all the devices, followed by a RESUME request

suspend_mode

sleep
0
If written, all devices sleep during the specified timeout: a SUSPEND request is sent, then a wait for the timeout, then a RESUME request.

sleep_ticks
[84, 396]
freq

If written, sets the new CPU frequency

au1x00_clock


1.12. /proc/sys/sh64

SH64 specific

node
leaf
default value
meaning
access
variable
notes
unaligned_fixup
kernel_reports
32
# of times a fixing up an unaligned access to kernel space will be traced

kernel_mode_unaligned_fixup_count

user_reports
10
# of times a fix up of an unaligned access to user space will be traced

user_mode_unaligned_fixup_count
if SH64_USER_MISALIGNED_FIXUP (.config)
user_enable
1
Enables (1) / disables (0) fix up of user mode unaligned accesses.

user_mode_unaligned_fixup_enable
if SH64_USER_MISALIGNED_FIXUP (.config)

1.13. /proc/sys/abi

TBC

leaf
default value
meaning
access
variable
notes
vsyscall32
1
If 1, adds ELF info to the binary for the vsyscall page

sysctl_vsyscall32


1.14. /proc/sys/bus

TBC

node
leaf
default value
meaning
access
variable
notes
isa
membase


RO
isa_membase

portbase


RO
isa_portbase

portshift


RO
isa_portshift


1.15. /proc/sys/sunrpc

SUN RPC specific

leaf
default value
meaning
access
variable
notes
rpc_debug
0
If written:
1. displays the RPC statistics
2. Enables RPC debugging

rpc_debug
#if RPC_DEBUG
nfs_debug
0x80 if NFSROOT_DEBUG
0 else
Sets NFS debugging level

nfs_debug
#if RPC_DEBUG
nfsd_debug
0
Sets NFS daemon debugging level

nfsd_debug
#if RPC_DEBUG
nlm_debug
0
Set lockd debugging level

nlm_debug
#if RPC_DEBUG
udp_slot_table_entries
16
Max # of outstanding RPC requests if UDP protocol

xprt_udp_slot_table_entries
[2, 0x80]
tcp_slot_table_entries
16
Max # of outstanding RPC requests if TCP protocol

xprt_tcp_slot_table_entries
[2, 0x80]

1.16. /proc/sys/rxrpc

RX RPC specific

leaf
default value
meaning
access
variable
notes
kdebug
0
If non-zero, enables debugging messages

rxrpc_kdebug

ktrace
0
If non-zero, enables tracing of both
. routines calling parameters
. return status from routines

rxrpc_ktrace

kproto
0
If non-zero, enables protocol tracing

rxrpc_kproto

knet
0
If non-zero, enables tracing of sent / received packets

rxrpc_knet

peertimo
12 * 60 * 60
If no answer to a call is received within this timeout, the peer is considered dead

rxrpc_peer_timeout

conntimo
60 * 60
Connection timeout

rxrpc_conn_timeout


2. sysconf() family

2.1. sysconf(3)

(conforming to POSIX.1)
At run time, system configuration constants can be obtained using sysconf(3). These values do not change during the lifetime of a process. It's a portable way for applications to test at run-time whether some options are supported, or to get the value of some configurable constants or limits.

POSIX.1 variables
Name
Sysconf argument
Returned value
Limit
ARG_MAX
_SC_ARG_MAX
Max length of the arguments to the exec() family of functions. >= _POSIX_ARG_MAX (4096)
>= _POSIX_ARG_MAX
CHILD_MAX
_SC_CHILD_MAX
The max # of simultaneous processes per user id.
>= _POSIX_CHILD_MAX (25)
HOST_NAME_MAX
_SC_HOST_NAME_MAX
The max length of a hostname, not including the final NULL, as returned by gethostname(2).
>= _POSIX_HOST_NAME_MAX (255)
LOGIN_NAME_MAX
_SC_LOGIN_NAME_MAX
Max length of a login name, including the final NUL.
>= POSIX_LOGIN_NAME_MAX (9)
CLK_TCK (obsolete)
_SC_CLK_TCK
The # of ticks per second. (Note: the macro CLOCKS_PER_SEC does not give information: it must equal 100000)

OPEN_MAX
_SC_OPEN_MAX
The max # of files that a process can have open at any time.
>= _POSIX_OPEN_MAX (20)
PAGESIZE
(some systems use PAGE_SIZE)
_SC_PAGESIZE
Size of a page in bytes
>= 1
RE_DUP_MAX
_SC_RE_DUP_MAX
The # of repeated occurences of a Basic Regular Expression permitted by regexec(3) and recomp(3)
>= _POSIX2_RE_DUP_MAX (255)
STREAM_MAX
_SC_STREAM_MAX
The max # of streams that a process can have open at any time. If defined
if defined = FOPEN_MAX
>= _POSIX_STREAM_MAX (8)
SYMLOOP_MAX

The max # of posix links seen in a pathname before resolution returns ELOOP.
>= _POSIX_SYM_LOOP_MAX (8)
TTY_NAME_MAX
_SC_TTY_NAME_MAX
The max length of terminal device name, include final NUL.
>= _POSIX_TTY_NAME_MAX (9)
TZNAME_MAX
_SC_TZNAME_MAX
The max # of bytes in a timezone name.
>= _POSIX_TZNAME_MAX (6)
_POSIX_VERSION
_SC_VERSION
indicates the year and month the POSIX.1 standard was approved in the format YYYYMML;

POSIX.2 variables
BC_BASE_MAX
_SC_BC_BASE_MAX
indicates the max obase value accepted by the bc(1) utility

BC_DIM_MAX
_SC_BC_DIM_MAX
indicates the max value of elements permitted in an array by bc(1)

BC_SCALE_MAX
_SC_BC_SCALE_MAX
indicates the max scale value allowed by bc(1)

BC_STRING_MAX
_SC_BC_STRING_MAX
indicates the max length of a string accepted by bc(1)

COLL_WEIGHTS_MAX
_SC_COLL_WEIGHTS_MAX
indicates the max # of weights that can be assigned to an entry of the LC_COLLATE order keyword in the locale definition file

EXPR_NEST_MAX
_SC_EXPR_NEST_MAX
max # of expressions which can be nested within parentheses by expr(1)

LINE_MAX
_SC_LINE_MAX
The max length of a utility's input line length, either from standard input or from a file. This includes length of a trailing newline.

RE_DUP_MAX
_SC_RE_DUP_MAX
The max # of repeated occurences of a regular expression when the interval notation \{,n\} is used.

POSIX2_VERSION
_SC_2_VERSION
indicates the version of the POSIX.2 standard in the format YYYYMML

POSIX2_CDEV
_SC_2_DEV
indicates whether the POSIX.2 C language development facilities are supported

POSIX2_FORT_RUN
_SC_2_FORT_RUN
indicates whether the POSIX.2 FORTRAN development utilities are supported

_POSIX2_LOCALEDEF
_SC_2_LOCALEDEF
indicates whether the POSIX.2 creation of locales via localedef(1) is supported

POSIX2_SW_DEV
_SC_2_SW_DEV
indicates whether the POSIX.2 software development utilities option is supported

Values that may not be standard

_SC_PHYS_PAGES
The # of pages of physical memory. Note that it is possible for _SC_PHYS_PAGES * _SC_PAGE_SIZE to overflow


_SC_AVPHYS_PAGES
The # of currently available pages of physical memory


2.2. (f)pathconf(3)

(conforming to POSIX.1)
Same as sysconf(3), except that they get configuration values for a file (through its file descriptor or its path).

Name
Returned value
Limit

_PC_LINK_MAX
Max # of links to the file. If file refers to a directory, the value applies to the whole directory
>= _POSIX_LINK_MAX

_PC_MAX_CANON
Max length of a formatted input line, where the file parameter must refer to a terminal
>= _POSIX_MAX_CANON

_PC_MAX_INPUT
Max length of an input line, where the file parameter must refer to a terminal
>= _POSIX_MAX_INPUT

_PC_NAME_MAX
Max length of a filename the process is allowd to create in the directory path of filedes
>= _POSIX_NAME_MAX
statfs(2) fills statfs.f_namelen which is max length of file names in the argument FS
_PC_PATH_MAX
Max length of a relative pathname when path of filedes is the current working directory
>= _POSIX_PATH_MAX

_PC_PIPE_BUF
Size of the pipe buffer, where filedes must refer to a pipe or FIFO and path must refer to a FIFO
>= _POSIX_PIPE_BUF

_PC_CHOWN_RESTRICTED
!= 0 if the chown(2) call may not be used on the argument. If argument refers to a directory, then this applies to all files in that directory
>= _POSIX_CHOWN_RESTRICTED (0)

_PC_NO_TRUNC
!= 0 if accessing filenames longer than _POSIX_NAME_MAX generates an error
>= _POSIX_NO_TRUNC

_PC_VDISABLE
!= 0 if special character processing can be disabled, where argument must refer to a terminal


2.3. confstr(3)

(confirming to POSIX.2)
Same as sysconf(3), to get string values.

Name
Returned value
_CS_PATH
A value for the PATH variable which indicates where all the POSIX.2 standard utilities can be found

2.4. getconf(1)

(conforming to POSIX):
command equivalent to sysconf(3)/pathconf(3)/fpathconf(3)/confstr(3)
Same parameters apply

3. sysfs

    TBC

Appendix A. /proc/sys/net hierarchy

        bridge
                bridge-nf-call-arptables
                bridge-nf-call-iptables
                bridge-nf-call-ip6tables
                bridge-nf-filter-vlan-tagged
        unix
                max_dgram_qlen
        ipx
                ipx_pprop_broadcasting
        core
                wmem_max
                rmem_max
                wmem_default
                rmem_default
                dev_weight
                netdev_max_backlog
                no_cong_thresh
                no_cong
                lo_cong
                mod_cong
                message_cost
                message_burst
                optmem_max
                divert_version
                somaxconn
        ethernet
        ipv4
                conf
                        all
                                forwarding
                                mc_forwarding
                                accept_redirects
                                secure_redirects
                                shared_media
                                rp_filter
                                send_redirects
                                accept_source_route
                                proxy_arp
                                medium_id
                                bootp_relay
                                log_martians
                                tag
                                arp_filter
                                arp_announce
                                arp_ignore
                                disable_xfrm
                                disable_policy
                                force_igmp_version
                netfilter
                        ip_conntrack_max
                        ip_conntrack_count
                        ip_conntrack_buckets
                        ip_conntrack_tcp_timeout_syn_sent
                        ip_conntrack_tcp_timeout_syn_recv
                        ip_conntrack_tcp_timeout_established
                        ip_conntrack_tcp_timeout_fin_wait
                        ip_conntrack_tcp_timeout_close_wait
                        ip_conntrack_tcp_timeout_last_ack
                        ip_conntrack_tcp_timeout_time_wait
                        ip_conntrack_tcp_timeout_close
                        ip_conntrack_udp_timeout
                        ip_conntrack_udp_timeout_stream
                        ip_conntrack_icmp_timeout
                        ip_conntrack_generic_timeout
                        ip_conntrack_log_invalid
                        ip_conntrack_tcp_timeout_max_retrans
                        ip_conntrack_tcp_loose
                        ip_conntrack_tcp_be_liberal
                        ip_conntrack_tcp_max_retrans
                        ip_conntrack_sctp_timeout_closed
                        ip_conntrack_sctp_timeout_cookie_wait
                        ip_conntrack_sctp_timeout_cookie_echoed
                        ip_conntrack_sctp_timeout_established
                        ip_conntrack_sctp_timeout_shutdown_sent
                        ip_conntrack_sctp_timeout_shutdown_recd
                        ip_conntrack_sctp_timeout_shutdown_ack_sent
                ip_conntrack_max
                ip_queue_maxlen
                vs
                        lblc_expiration
                        lblcr_expiration
                        amemthresh
                        debug_level
                        am_droprate
                        drop_entry
                        drop_packet
                        secure_tcp
                        cache_bypass
                        expire_nodest_conn
                        sync_threshold
                        nat_icmp_send
                tcp_timestamps
                tcp_window_scaling
                tcp_sack
                tcp_retrans_collapse
                ip_forward
                ip_default_ttl
                ip_autoconfig
                ip_no_pmtu_disc
                ip_nonlocal_bind
                tcp_syn_retries
                tcp_synack_retries
                tcp_max_orphans
                tcp_max_tw_buckets
                ipfrag_high_thresh
                ipfrag_low_thresh
                ip_dynaddr
                ipfrag_time
                tcp_keepalive_time
                tcp_keepalive_probes
                tcp_keepalive_intvl
                tcp_retries1
                tcp_retries2
                tcp_fin_timeout
                tcp_syncookies
                tcp_tw_recycle
                tcp_abort_on_overflow
                tcp_stdurg
                tcp_rfc1337
                tcp_max_syn_backlog
                ip_local_port_range
                icmp_echo_ignore_all
                icmp_echo_ignore_broadcasts
                icmp_ignore_bogus_error_responses
                route
                        flush
                        min_delay
                        max_delay
                        gc_thresh
                        max_size
                        gc_min_interval
                        gc_timeout
                        gc_interval
                        redirect_load
                        redirect_number
                        redirect_silence
                        error_cost
                        error_burst
                        gc_elasticity
                        mtu_expires
                        min_pmtu
                        min_adv_mss
                        secret_interval
                igmp_max_memberships
                igmp_max_msf
                inet_peer_threshold
                inet_peer_minttl
                inet_peer_maxttl
                inet_peer_gc_mintime
                inet_peer_gc_maxtime
                tcp_orphan_retries
                tcp_fack
                tcp_reordering
                tcp_ecn
                tcp_dsack
                tcp_mem
                tcp_wmem
                tcp_rmem
                tcp_app_win
                tcp_adv_win_scale
                icmp_ratelimit
                icmp_ratemask
                tcp_tw_reuse
                tcp_frto
                tcp_low_latency
                ipfrag_secret_interval
                tcp_no_metrics_save
                tcp_westwood
                tcp_vegas_cong_avoid
                tcp_vegas_alpha
                tcp_vegas_beta
                tcp_vegas_gamma
                tcp_bic
                tcp_bic_fast_convergence
                tcp_bic_low_window
                tcp_moderate_rcvbuf
                tcp_tso_win_divisor
        ipv6
                ip6_queue_maxlen
                route
                        flush
                        gc_thresh
                        max_size
                        gc_min_interval
                        gc_timeout
                        gc_interval
                        gc_elasticity
                        mtu_expires
                        min_adv_mss
                icmp
                        ratelimit
                bindv6only
                ip6frag_high_thresh
                ip6frag_low_thresh
                ip6frag_time
                ip6frag_secret_interval
                mld_max_msf
                conf
                        all
                                forwarding
                                hop_limit
                                mtu
                                accept_ra
                                accept_redirects
                                autoconf
                                dad_transmits
                                router_solicitations
                                router_solicitation_interval
                                router_solicitation_delay
                                force_mld_version
                                use_tempaddr
                                temp_valid_lft
                                temp_prefered_lft
                                regen_max_retry
                                max_desync_factor
                                max_addresses
        token-ring
        irda
                discovery
                devname
                debug
                fast_poll_increase
                discovery_slots
                discovery_timeout
                slot_timeout
                max_baud_rate
                min_tx_turn_time
                max_tx_data_size
                max_tx_window
                max_noreply_time
                warn_noreply_time
                lap_keepalive_time
        rose
                restart_request_timeout
                call_request_timeout
                reset_request_timeout
                clear_request_timeout
                no_activity_timeout
                acknowledge_hold_back_timeout
                routing_control
                link_fail_timeout
                maximum_virtual_circuits
                window_size
        ax25
                ip_default_mode
                ax25_default_mode
                backoff_type
                connect_mode
                standard_window_size
                extended_window_size
                t1_timeout
                t2_timeout
                t3_timeout
                idle_timeout
                maximum_retry_count
                maximum_packet_length
                protocol
                dama_slave_timeout
        appletalk
                aarp-expiry-time
                aarp-tick-time
                aarp-retransmit-limit
                aarp-resolve-time
        x25
                restart_request_timeout
                call_request_timeout
                reset_request_timeout
                clear_request_timeout
                acknowledgement_hold_back_timeout
        decnet
                node_address
                node_name
                default_device
                time_wait
                dn_count
                di_count
                dr_count
                dst_gc_interval
                no_fc_max_cwnd
                debug
                conf
                        ????
                                forwarding
                                priority
                                t2
                                t3
        ???
                neigh
                        default
                                mcast_solicit
                                ucast_solicit
                                app_solicit
                                retrans_time
                                base_reachable_time
                                delay_first_probe_time
                                gc_stale_time
                                unres_qlen
                                proxy_qlen
                                anycast_delay
                                proxy_delay
                                locktime
                                gc_interval
                                gc_thresh1
                                gc_thresh2
                                gc_thresh3
        netrom
                default_path_quality
                obsolescence_count_initialiser
                network_ttl_initialiser
                transport_timeout
                transport_maximum_tries
                transport_acknowledge_delay
                transport_busy_delay
                transport_requested_window_size
                transport_no_activity_timeout
                routing_control
                link_fails_count
        sctp
                rto_initial
                rto_min
                rto_max
                valid_cookie_life
                max_burst
                association_max_retrans
                path_max_retrans
                max_init_retransmits
                hb_interval
                cookie_preserve_enable
                rto_alpha_exp_divisor
                rto_beta_exp_divisor
                addip_enable
                prsctp_enable

Appendix B. /proc/sys/dev hierarchy

        raid
                speed_limit_min
                speed_limit_max
        scsi
                logging_level
        rtc
                max-user-freq
        cdrom
                info
                autoclose
                autoeject
                debug
                lock
                check_media
        parport
                default
                        timeslice
                        spintime
                parport0
                        spintime
                        base-addr
                        irq
                        dma
                        modes
                        devices
                                active
                                lp
                                        timeslice
                        autoprobe
                        autoprobe0
                        autoprobe1
                        autoprobe2
                        autoprobe3
        hpet
                max-user-freq
        mac_hid
                mouse_button_emulation
                mouse_button2_keycode
                mouse_button3_keycode
        arlan
                arlan0
                        spreadingCode
                        channelNumber
                        scramblingDisable
                        txAttenuation
                        systemId
                        maxDatagramSize
                        maxFrameSize
                        maxRetries
                        receiveMode
                        priority
                        rootOrRepeater
                        SID
                        registrationMode
                        registrationFill
                        localTalkAddress
                        codeFormat
                        numChannels
                        channel1
                        channel2
                        channel3
                        channel4
                        txClear
                        txRetries
                        txRouting
                        txScrambled
                        rxParameter
                        txTimeoutsMs
                        waitCardTimeout
                        channelSet
                        name
                        waitTime
                        lParameter
                        _15
                        headerSize
                        tx_delay_ms
                        retires
                        ReTransmitPacketMaxSize
                        waitReTransmitPacketMaxSize
                        fastReTransCount
                        driverRetransmissions
                        txAckTimeoutsMs
                        registrationInterrupts
                        hardwareType
                        radioType
                        writeEEPROM
                        writeRadioType
                        entry_exit_debug
                        debug
                        in_speed
                        out_speed
                        in_speed10
                        out_speed10
                        in_speed_max
                        out_speed_max
                        measure_rate
                        pre_Command_Wait
                        rx_tweak1
                        rx_tweak2
                        tx_queue_len
                        arlan<XXX>-txRing
                        arlan<XXX>-rxRing
                        arlan<XXX>-18
                        arlan<XXX>-ring
                        arlan<XXX>-shm-cpy
                        config<XXX>
                        reset<XXX>
                arlan1
                        <id as arlan0>
                arlan2
                        <id as arlan0>
                arlan3
                        <id as arlan0>

End of Document