如何知道Linux内核中CPU访问的物理内存地址?

时间:2012-10-13 07:27:59

标签: kernel qemu mmu

我正在尝试通过Linux中的某些基准测试应用程序跟踪内存访问模式。最后,我想知道内核(或用户)空间中的CPU访问的物理内存地址。

有没有一种简单的方法来获取它而不修改内核源代码?我希望可以在我的内核模块中挂钩一些MMU例程,然后将虚拟地址转换为物理地址,并将物理地址写入内核日志或类似的东西。这可能吗?

使用像Qemu这样的模拟器会更好吗?

1 个答案:

答案 0 :(得分:1)

是的,去QEMU,它最适合您的要求。您必须调整QEMU代码才能获得从虚拟地址到物理地址的转换。唯一的问题是QEMU是出于研究目的,因此您可能无法像真实系统那样获得精确的映射行为。但是,它仍将在某种程度上实现你的目的。