Google软件工程师PashaTatashin提议将PageDetective作为一种新的内核调试工具,该工具能够更深入地了解物理内存页面的使用和映射情况。"页面侦探"的初始代码已以"征求意见"的形式发布,并利用LinuxDebugFS接口提供虚拟地址和物理地址的相关信息。
PageDetective提供的这种洞察力可帮助开发人员和服务器管理员了解系统的内存页面使用情况,例如在处理内存问题时、实时迁移过程中的校验和故障、文件系统日志故障、分段故障以及其他可能的内存损坏情况。
用于Linux页面检测的RFC修补程序今天发布在Linux内核邮件列表上。Pasha在该补丁封面信中进一步解释说:
人们通常知道某个特定页面已损坏,但很难从实时系统中提取有关该页面的更多信息。例如
-实时迁移期间的校验失败
-文件系统日志失败
-控制台日志上的dump_page警告
-未检测到的segfault
PageDetective有助于从内核中提取更多信息、因此开发人员可以利用它找出相关问题的根源。
它通过Linuxdebugfs接口运行,有两个文件:"virt"和"phys":"
"virt"文件接收虚拟地址和PID,并输出相应页面的信息。
"phys"文件接收物理地址,并输出该页面的信息。
输出通过内核日志信息(可使用dmesg访问)显示,包括页面的引用计数、映射、标志和内存cgroup等信息。它还会显示页面是否在内核页表中进行了映射,如果是,会显示映射了多少次。"
我们可以继续观察页面检测工作的进展,以及其他相关者是否对将其纳入Linux内核主线的当前形式感兴趣。