【问题标题】:Memory-Debuging: How to get locked pages information in user space/kernel space in linux内存调试:如何在 linux 中获取用户空间/内核空间中的锁定页面信息
【发布时间】:2019-07-25 19:51:57
【问题描述】:

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

我想了解以下详细信息: 谁锁定了页面? 有多少页被锁定? 锁定页面的进程名称?

还让我知道内核空间和用户空间的内存调试技术。

【问题讨论】:

    标签: memory-management memory-leaks linux-kernel embedded-linux


    【解决方案1】:

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

    了解锁定页面详细信息的两个选项:

    1. 使用猫/sys/kernel/debug/page_owner >> page_owner.txt 启用调试:kernel menuconfig PAGE_OWNER=y"page_owner=on" 添加到引导命令行。 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。 它将为您提供带有标志的所有页面详细信息,然后您可以在内存中找到锁定的页面。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-10-29
      • 2014-06-10
      • 1970-01-01
      • 2012-10-09
      • 1970-01-01
      • 2015-11-02
      • 1970-01-01
      相关资源
      最近更新 更多