首页 文章

QEMU监控命令'info mem'和'info mtree'做什么?

提问于
浏览
5

我正在尝试了解QEMU内存管理(使用i386 guest,没有KVM) . QEMU监视器允许列出CPU寄存器信息( info registers ),USB设备( info usb ),网络( info network )等 .

但是 info meminfo mtree 命令呢?那里很难弄清楚这些命令的作用 .

例如,我从一些Linux ISO启动了QEMU并给了它128MB的RAM . info mem 给出输出:

(qemu) info mem
00000000c0000000-00000000c009b000 000000000009b000 -rw
00000000c009b000-00000000c009d000 0000000000002000 -r-
00000000c009d000-00000000c7ffe000 0000000007f61000 -rw
00000000c87fe000-00000000c87ff000 0000000000001000 -rw
...and more...
00000000c94f6000-00000000c94f7000 0000000000001000 -rw
00000000c94f8000-00000000c94fd000 0000000000005000 -rw
00000000c9500000-00000000c98c0000 00000000003c0000 -rw
00000000ff7f5000-00000000ff7f7000 0000000000002000 -rw
00000000ffffa000-00000000ffffc000 0000000000002000 -rw

帮助说明您可以使用 info mem 至"show the active virtual memory mappings" . 前两列给出虚拟内存范围,第三列显示范围长度 . 但这些映射到底是什么?如果它是虚拟内存,那么它属于哪个进程?

info mtree 命令类似的情况 .

1 回答

  • 6

    info mtree

    此命令显示进程的内存层次结构 . 在QEmu的提交日志中,以下条目创建此功能的第一个版本 . info mtree 所做的是打印系统内存到不同设备的映射 . 还表示了这些设备的层次结构 .

    commit 314e298735903035ba2b7b0f3cf39981f4171546
    Author: Blue Swirl <blauwirbel@gmail.com>
    Date:   Sun Sep 11 20:22:05 2011 +0000
    
        memory: simple memory tree printer
    
        Add a monitor command 'info mtree' to show the memory hierarchy
        much like /proc/iomem in Linux.
    
        Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
        Signed-off-by: Avi Kivity <avi@redhat.com>
    

    Qemu-devel list讨论了添加它的原始补丁的功能,以及随着时间推移对该功能进行的一些improvements .

    info mem

    如您所述,此命令显示活动的虚拟内存映射 . 它不适用于特定进程,而是运行命令时的当前页表 . This page有关于输出格式的更多信息 .

    要获得进程级信息,您需要在您正在模拟的Linux操作系统中执行某些操作,因为Qemu只知道MMU-level information .

相关问题