我希望从内核模块中直接访问进程的驻留集大小(我希望基于RSS进行实时决策,所以每次计算它对我来说都是一个糟糕的选择)。
/proc/$PID/status有一个可以使用的VmRSS字段,但我不知道如何从内核模块中获取该信息。
发布于 2015-05-04 16:08:56
包含linux/mm.h,并在当前为task_struct*的地方调用get_mm_rss(current->mm)以执行所需的任务。
使用LXR查找实际用于获取VmRSS的内容:
来自mmu.c
hiwater_rss = total_rss = get_mm_rss(mm);
[...]
seq_printf(m,
[...]
"VmRSS:\t%8lu kB\n"
[...]
total_vm << (PAGE_SHIFT-10)get_mm_rss()是在包含/linux/mm.h中定义的
static inline unsigned long get_mm_rss(struct mm_struct *mm)
{
return get_mm_counter(mm, MM_FILEPAGES) +
get_mm_counter(mm, MM_ANONPAGES);
}https://stackoverflow.com/questions/30007779
复制相似问题