proc

package
v0.0.0-...-ba09d25 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 29, 2021 License: Apache-2.0, MIT Imports: 35 Imported by: 0

README

This document tracks what is implemented in procfs. Refer to Documentation/filesystems/proc.txt in the Linux project for information about procfs generally.

NOTE: This document is not guaranteed to be up to date. If you find an inconsistency, please file a bug.

[TOC]

Kernel data

The following files are implemented:

File /proc/ Content
cpuinfo Info about the CPU
filesystems Supported filesystems
loadavg Load average of last 1, 5 & 15 minutes
meminfo Overall memory info
stat Overall kernel statistics
sys Change parameters within the kernel
uptime Wall clock since boot, combined idle time of all cpus
version Kernel version

cpuinfo

$ cat /proc/cpuinfo
processor   : 0
vendor_id   : GenuineIntel
cpu family  : 6
model       : 45
model name  : unknown
stepping    : unknown
cpu MHz     : 1234.588
fpu     : yes
fpu_exception   : yes
cpuid level : 13
wp      : yes
flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx xsaveopt
bogomips    : 1234.59
clflush size    : 64
cache_alignment : 64
address sizes   : 46 bits physical, 48 bits virtual
power management:

...

Notable divergences:

Field name Notes
model name Always unknown
stepping Always unknown
fpu Always yes
fpu_exception Always yes
wp Always yes
bogomips Bogus value (matches cpu MHz)
clflush size Always 64
cache_alignment Always 64
address sizes Always 46 bits physical, 48 bits virtual
power management Always blank

Otherwise fields are derived from the sentry configuration.

filesystems

$ cat /proc/filesystems
nodev   9p
nodev   devpts
nodev   devtmpfs
nodev   proc
nodev   sysfs
nodev   tmpfs

loadavg

$ cat /proc/loadavg
0.00 0.00 0.00 0/0 0
Column Notes
CPU.IO utilization in last 1 minute Always zero
CPU.IO utilization in last 5 minutes Always zero
CPU.IO utilization in last 10 minutes Always zero
Num currently running processes Always zero
Total num processes Always zero

TODO(b/62345059): Populate the columns with accurate statistics.

meminfo

$ cat /proc/meminfo
MemTotal:        2097152 kB
MemFree:         2083540 kB
MemAvailable:    2083540 kB
Buffers:               0 kB
Cached:             4428 kB
SwapCache:             0 kB
Active:            10812 kB
Inactive:           2216 kB
Active(anon):       8600 kB
Inactive(anon):        0 kB
Active(file):       2212 kB
Inactive(file):     2216 kB
Unevictable:           0 kB
Mlocked:               0 kB
SwapTotal:             0 kB
SwapFree:              0 kB
Dirty:                 0 kB
Writeback:             0 kB
AnonPages:          8600 kB
Mapped:             4428 kB
Shmem:                 0 kB

Notable divergences:

Field name Notes
Buffers Always zero, no block devices
SwapCache Always zero, no swap
Inactive(anon) Always zero, see SwapCache
Unevictable Always zero TODO(b/31823263)
Mlocked Always zero TODO(b/31823263)
SwapTotal Always zero, no swap
SwapFree Always zero, no swap
Dirty Always zero TODO(b/31823263)
Writeback Always zero TODO(b/31823263)
MemAvailable Uses the same value as MemFree since there is no swap.
Slab Missing
SReclaimable Missing
SUnreclaim Missing
KernelStack Missing
PageTables Missing
NFS_Unstable Missing
Bounce Missing
WritebackTmp Missing
CommitLimit Missing
Committed_AS Missing
VmallocTotal Missing
VmallocUsed Missing
VmallocChunk Missing
HardwareCorrupted Missing
AnonHugePages Missing
ShmemHugePages Missing
ShmemPmdMapped Missing
HugePages_Total Missing
HugePages_Free Missing
HugePages_Rsvd Missing
HugePages_Surp Missing
Hugepagesize Missing
DirectMap4k Missing
DirectMap2M Missing
DirectMap1G Missing

stat

$ cat /proc/stat
cpu  0 0 0 0 0 0 0 0 0 0
cpu0 0 0 0 0 0 0 0 0 0 0
cpu1 0 0 0 0 0 0 0 0 0 0
cpu2 0 0 0 0 0 0 0 0 0 0
cpu3 0 0 0 0 0 0 0 0 0 0
cpu4 0 0 0 0 0 0 0 0 0 0
cpu5 0 0 0 0 0 0 0 0 0 0
cpu6 0 0 0 0 0 0 0 0 0 0
cpu7 0 0 0 0 0 0 0 0 0 0
intr 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ctxt 0
btime 1504040968
processes 0
procs_running 0
procs_blokkcked 0
softirq 0 0 0 0 0 0 0 0 0 0 0

All fields except for btime are always zero.

TODO(b/37226836): Populate with accurate fields.

sys

$ ls /proc/sys
kernel vm
Directory Notes
abi Missing
debug Missing
dev Missing
fs Missing
kernel Contains hostname (only)
net Missing
user Missing
vm Contains mmap_min_addr (only)

uptime

$ cat /proc/uptime
3204.62 0.00
Column Notes
Total num seconds system running Time since procfs was mounted
Number of seconds idle Always zero

version

$ cat /proc/version
Linux version 4.4 #1 SMP Sun Jan 10 15:06:54 PST 2016

Process-specific data

The following files are implemented:

File /proc/PID Content
auxv Copy of auxiliary vector for the process
cmdline Command line arguments
comm Command name associated with the process
environ Process environment
exe Symlink to the process's executable
fd Directory containing links to open file descriptors
fdinfo Information associated with open file descriptors
gid_map Mappings for group IDs inside the user namespace
io IO statistics
maps Memory mappings (anon, executables, library files)
mounts Mounted filesystems
mountinfo Information about mounts
ns Directory containing info about supported namespaces
stat Process statistics
statm Process memory statistics
status Process status in human readable format
task Directory containing info about running threads
uid_map Mappings for user IDs inside the user namespace

auxv

TODO

cmdline

TODO

comm

TODO

environment

TODO

exe

TODO

fd

TODO

fdinfo

TODO

gid_map

TODO

io

Only has data for rchar, wchar, syscr, and syscw.

TODO: add more detail.

maps

TODO

mounts

TODO

mountinfo

TODO

ns

TODO

stat

Only has data for pid, comm, state, ppid, utime, stime, cutime, cstime, num_threads, and exit_signal.

TODO: add more detail.

statm

Only has data for vss and rss.

TODO: add more detail.

status

Contains data for Name, State, Tgid, Pid, Ppid, TracerPid, FDSize, VmSize, VmRSS, Threads, CapInh, CapPrm, CapEff, CapBnd, Seccomp.

TODO: add more detail.

task

TODO

uid_map

TODO

Documentation

Overview

Package proc implements a partial in-memory file system for procfs.

Index

Constants

View Source
const FilesystemName = "proc"

FilesystemName is the name under which the filesystem is registered. Name matches fs/proc/root.c:proc_fs_type.name.

Variables

This section is empty.

Functions

func New

func New(ctx context.Context, msrc *fs.MountSource, cgroupControllers map[string]string) (*fs.Inode, error)

New returns the root node of a partial simple procfs.

Types

This section is empty.

Directories

Path Synopsis
Package device contains the proc device to avoid dependency loops.
Package device contains the proc device to avoid dependency loops.
Package seqfile provides dynamic ordered files.
Package seqfile provides dynamic ordered files.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL