求大神指导下meminfo怎么统计内存的?
cat /proc/meminfo
MemTotal: 1024812 kB
MemFree: 360208 kB
Buffers: 30572 kB
Cached: 435620 kB
SwapCached: 32 kB
Active: 239980 kB
Inactive: 242980 kB
Active(anon): 11816 kB
Inactive(anon): 11652 kB
Active(file): 228164 kB
Inactive(file): 231328 kB
Unevictable: 0 kB
Mlocked: 0 kB
HighTotal: 270336 kB
HighFree: 49668 kB
LowTotal: 754476 kB
LowFree: 310540 kB
SwapTotal: 131068 kB
SwapFree: 131032 kB
Dirty: 0 kB
Writeback: 0 kB
AnonPages: 16832 kB
Mapped: 16748 kB
Shmem: 6700 kB
Slab: 158036 kB
SReclaimable: 20756 kB
SUnreclaim: 137280 kB
KernelStack: 736 kB
PageTables: 676 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 643472 kB
Committed_AS: 173868 kB
VmallocTotal: 245760 kB
VmallocUsed: 17180 kB
VmallocChunk: 212864 kB
如上为/proc/meminfo中对内存的统计,其代码在fs/proc/meminfo.c中,接口为static int meminfo_proc_show(struct seq_file *m, void *v)。
但是各个内存是如何进行统计的,比如Slab,通过slab分配器分配的内存,比如kmalloc,按理说slab会增加,具体在什么地方增加的,求大神指导下!