有没有办法在linux中的用户空间/内核空间中获取锁定页面(虚拟内存页面)信息。
我想知道如下细节:谁锁定了网页?锁定了多少页?锁定页面的进程名称?
另请告诉我内核空间以及用户空间中的内存调试技术。
对于内存中的每个页面,分配给它的标志,使用mlock
,mlockall()
等API锁定虚拟内存页面,它将VM_LOCKED
标志分配给页面。
知道锁定页面细节的两个选项:
/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
/tool/vm/page-types.c
中,然后编译它并遍历/proc/
中的所有pid条目并对应用程序使用以下选项:./test -p $PID -L >> test_output.txt
。它将为您提供带有标志的所有页面详细信息,然后您可以在内存中找到锁定的页面。