求大神指导下meminfo怎么统计内存的?

youknow_killer 2017-10-27 05:54:19
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会增加,具体在什么地方增加的,求大神指导下!
...全文
1003 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
wjx5210 2017-12-21
  • 打赏
  • 举报
回复
引用 2 楼 cdbdyx 的回复:
static inline unsigned long global_page_state(enum zone_stat_item item) { long x = atomic_long_read(&vm_stat[item]); #ifdef CONFIG_SMP if (x < 0) x = 0; #endif return x; } 这不很清楚了吗,vm_stat存的各种统计信息,系统运行的时候会更新vm_stat里面的信息
在进行各种内存分配的时候,成功的话会随手更新统计参数的,位置比较零碎。 你看slab的信息明显是读取
		K(global_page_state(NR_SLAB_RECLAIMABLE) +
				global_page_state(NR_SLAB_UNRECLAIMABLE)),
那你就找NR_SLAB_RECLAIMABLE出现的位置,一般都可以找到的.
	mm/slub.c
mod_zone_page_state(page_zone(page),
		(s->flags & SLAB_RECLAIM_ACCOUNT) ?
		NR_SLAB_RECLAIMABLE : NR_SLAB_UNRECLAIMABLE,
		1 << oo_order(oo));
充电宝111 2017-11-22
  • 打赏
  • 举报
回复
static inline unsigned long global_page_state(enum zone_stat_item item) { long x = atomic_long_read(&vm_stat[item]); #ifdef CONFIG_SMP if (x < 0) x = 0; #endif return x; } 这不很清楚了吗,vm_stat存的各种统计信息,系统运行的时候会更新vm_stat里面的信息
qq_36234920 2017-10-30
  • 打赏
  • 举报
回复
同上 也想知道一下

4,436

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
  • 内核源代码研究区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧