【发布时间】:2020-07-22 21:07:03
【问题描述】:
我正在尝试创建一个能够报告内存管理统计信息的系统调用。我的目标是能够报告以下内容:
- 所有内存区域中的当前空闲页数。
- slab 分配器当前使用的页数,在所有内存中 区域。
- 活动列表中的当前页数,在所有内存中 区域。
- 非活动列表中的当前页数,在所有内存中 区域。
- 当前活动列表中的页数,其引用位 在所有内存区域中设置。
- 非活动列表中当前被引用的页数 在所有内存区域中设置位。
- 从活动列表移动到 自上次机器启动以来的非活动列表。
- 与七号相同,反之亦然。
我并不完全了解如何访问这些信息。我知道在mmzone.h 中有一个我可以使用名为vm_stat 的数组与enum zone_stat_item 和enum node_stat_item 一起使用,这将允许我收集有关1 的信息,但mmzone.h 是否包含有关2 到8 的信息。例如,我会使用vm_stat[NR_SLAB_RECLAIMABLE] 和vm_stat[NR_SLAB_UNRECLAIMABLE] 来计算2吗?如果没有,我在哪里可以访问满足 2 到 8 的信息?我很困惑,因为我发现单独的变量名称不是很有描述性。
【问题讨论】:
标签: linux memory memory-management system-calls