了解Qemu地址翻译

时间:2015-04-10 16:41:32

标签: c linux linux-kernel qemu page-tables

这是我的设置:

在vm中,在用户空间程序中,我在地址bf9ee1a0处存储值为“8”的变量。

当我在vm内核空间中调用virt_to_phys函数时,我得到了与地址对应的ff9ee1a0的物理地址。

在qemu上,pte和pte_addr分别是a5913865和bf955f78。我刚刚使用了x86_cpu_handle_mmu_fault函数并添加了某些printf语句。 我的理解是os和qemu的映射应该是相同的。即bf9ee1a0应映射到a5913865。

我知道这里有很多级别的翻译。访客虚拟 - 访客物理 - 主机虚拟。

这是我的问题: 1.我想知道实际存储的数据在哪里?

  1. virt_to_phys()的含义是什么?

  2. 我确保控制寄存器中使用的地址在vm内部和qemu中都是相同的,用于分页。那为什么这种差异呢?

  3. 如果需要在qemu中打印pte所具有的页面内容,如何使用printf语句进行打印?

  4. 非常感谢任何见解。

0 个答案:

没有答案