内存调试:如何在linux中的用户空间/内核空间中获取锁定的页面信息

问题描述 投票:0回答:1

有没有办法在linux中的用户空间/内核空间中获取锁定页面(虚拟内存页面)信息。

我想知道如下细节:谁锁定了网页?锁定了多少页?锁定页面的进程名称?

另请告诉我内核空间以及用户空间中的内存调试技术。

memory-management memory-leaks linux-kernel embedded-linux
1个回答
1
投票

对于内存中的每个页面,分配给它的标志,使用mlockmlockall()等API锁定虚拟内存页面,它将VM_LOCKED标志分配给页面。

知道锁定页面细节的两个选项:

  1. 使用cat /sys/kernel/debug/page_owner >> page_owner.txt启用调试:kernel menuconfig PAGE_OWNER=y添加"page_owner=on"以启动cmdline。 cat /sys/kernel/debug/page_owner >> page_owner.txt
  2. 在linux源代码类型:/tool/vm/page-types.c中,然后编译它并遍历/proc/中的所有pid条目并对应用程序使用以下选项:./test -p $PID -L >> test_output.txt。它将为您提供带有标志的所有页面详细信息,然后您可以在内存中找到锁定的页面。
© www.soinside.com 2019 - 2024. All rights reserved.