etc:users:jcmvbkbc:linux-mm
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| etc:users:jcmvbkbc:linux-mm [2009/07/13 18:23] – jcmvbkbc | etc:users:jcmvbkbc:linux-mm [2016/08/08 20:53] (current) – ↷ Page moved from users:jcmvbkbc:linux-mm to etc:users:jcmvbkbc:linux-mm kel | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== Linux memory management summary ====== | ====== Linux memory management summary ====== | ||
| Every part of process address space is some sort of mapping. | Every part of process address space is some sort of mapping. | ||
| + | |||
| Line 29: | Line 30: | ||
| * swap -- size of region data that is currently in swap file; | * swap -- size of region data that is currently in swap file; | ||
| - | * Charging memory to processes | ||
| - | * total_vm | ||
| ==== Information sources ==== | ==== Information sources ==== | ||
| + | Quotes from linux/ | ||
| + | |||
| Per-process data: | Per-process data: | ||
| - | * / | + | * / |
| + | < | ||
| + | The / | ||
| + | their access permissions. | ||
| + | |||
| + | The format is: | ||
| + | |||
| + | address | ||
| + | |||
| + | 08048000-08049000 r-xp 00000000 03:00 8312 / | ||
| + | 08049000-0804a000 rw-p 00001000 03:00 8312 / | ||
| + | 0804a000-0806b000 rw-p 00000000 00:00 0 [heap] | ||
| + | a7cb1000-a7cb2000 ---p 00000000 00:00 0 | ||
| + | a7cb2000-a7eb2000 rw-p 00000000 00:00 0 | ||
| + | a7eb2000-a7eb3000 ---p 00000000 00:00 0 | ||
| + | a7eb3000-a7ed5000 rw-p 00000000 00:00 0 | ||
| + | a7ed5000-a8008000 r-xp 00000000 03:00 4222 / | ||
| + | a8008000-a800a000 r--p 00133000 03:00 4222 / | ||
| + | a800a000-a800b000 rw-p 00135000 03:00 4222 / | ||
| + | a800b000-a800e000 rw-p 00000000 00:00 0 | ||
| + | a800e000-a8022000 r-xp 00000000 03:00 14462 / | ||
| + | a8022000-a8023000 r--p 00013000 03:00 14462 / | ||
| + | a8023000-a8024000 rw-p 00014000 03:00 14462 / | ||
| + | a8024000-a8027000 rw-p 00000000 00:00 0 | ||
| + | a8027000-a8043000 r-xp 00000000 03:00 8317 / | ||
| + | a8043000-a8044000 r--p 0001b000 03:00 8317 / | ||
| + | a8044000-a8045000 rw-p 0001c000 03:00 8317 / | ||
| + | aff35000-aff4a000 rw-p 00000000 00:00 0 [stack] | ||
| + | ffffe000-fffff000 r-xp 00000000 00:00 0 [vdso] | ||
| + | |||
| + | where " | ||
| + | is a set of permissions: | ||
| + | |||
| + | r = read | ||
| + | w = write | ||
| + | x = execute | ||
| + | s = shared | ||
| + | p = private (copy on write) | ||
| + | |||
| + | " | ||
| + | " | ||
| + | with the memory region, as the case would be with BSS (uninitialized data). | ||
| + | The " | ||
| + | is not associated with a file: | ||
| + | |||
| + | | ||
| + | | ||
| + | | ||
| + | the kernel system call handler | ||
| + | |||
| + | or if empty, the mapping is anonymous. | ||
| + | </ | ||
| * / | * / | ||
| + | < | ||
| + | 08048000-080bc000 r-xp 00000000 03:02 13130 /bin/bash | ||
| + | Size: 1084 kB | ||
| + | Rss: 892 kB | ||
| + | Pss: 374 kB | ||
| + | Shared_Clean: | ||
| + | Shared_Dirty: | ||
| + | Private_Clean: | ||
| + | Private_Dirty: | ||
| + | Referenced: | ||
| + | Swap: 0 kB | ||
| + | KernelPageSize: | ||
| + | MMUPageSize: | ||
| + | </ | ||
| * / | * / | ||
| + | < | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | includes data segment) | ||
| + | | ||
| + | | ||
| + | includes library text) | ||
| + | | ||
| + | </ | ||
| * / | * / | ||
| + | < | ||
| + | >cat / | ||
| + | Name: cat | ||
| + | State: | ||
| + | Tgid: 5452 | ||
| + | Pid: 5452 | ||
| + | PPid: 743 | ||
| + | TracerPid: | ||
| + | Uid: 501 | ||
| + | Gid: 100 | ||
| + | FDSize: 256 | ||
| + | Groups: 100 14 16 | ||
| + | VmPeak: | ||
| + | VmSize: | ||
| + | VmLck: | ||
| + | VmHWM: | ||
| + | VmRSS: | ||
| + | VmData: | ||
| + | VmStk: | ||
| + | VmExe: | ||
| + | VmLib: | ||
| + | VmPTE: | ||
| + | Threads: | ||
| + | SigQ: | ||
| + | SigPnd: 0000000000000000 | ||
| + | ShdPnd: 0000000000000000 | ||
| + | SigBlk: 0000000000000000 | ||
| + | SigIgn: 0000000000000000 | ||
| + | SigCgt: 0000000000000000 | ||
| + | CapInh: 00000000fffffeff | ||
| + | CapPrm: 0000000000000000 | ||
| + | CapEff: 0000000000000000 | ||
| + | CapBnd: ffffffffffffffff | ||
| + | voluntary_ctxt_switches: | ||
| + | nonvoluntary_ctxt_switches: | ||
| + | </ | ||
| * / | * / | ||
| * / | * / | ||
| Line 120: | Line 234: | ||
| * if (oom_adj > 0) points <<= oom_adj; //(if points == 0 before shift, points = 1)// | * if (oom_adj > 0) points <<= oom_adj; //(if points == 0 before shift, points = 1)// | ||
| * if (oom_adj < 0) points >>= -oom_adj; | * if (oom_adj < 0) points >>= -oom_adj; | ||
| + | |||
| Line 128: | Line 243: | ||
| * vm.panic_on_oom -- panic in case of OOM, instead of trying to kill some processes; | * vm.panic_on_oom -- panic in case of OOM, instead of trying to kill some processes; | ||
| * vm.oom_kill_allocating_task -- try first to kill task that issued request for memory that caused OOM condition; | * vm.oom_kill_allocating_task -- try first to kill task that issued request for memory that caused OOM condition; | ||
| - | * vm.oom_dump_tasks -- dump memory summary, stack of the process caused oom and table of processes to log at before oom-killing; | + | * vm.oom_dump_tasks -- dump memory summary, stack of the process caused oom and table of processes to log before oom-killing; |
| * vm.would_have_oomkilled | * vm.would_have_oomkilled | ||
etc/users/jcmvbkbc/linux-mm.1247495016.txt.gz · Last modified: 2009/07/13 18:23 by jcmvbkbc