7

QEMUのメモリ管理を理解しようとしています(i386ゲストを使用し、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
...もっと...
00000000c94f6000-00000000c94f7000 0000000000001000 -rw
00000000c94f8000-00000000c94fd000 0000000000005000 -rw
00000000c9500000-00000000c98c0000 00000000003c0000 -rw
00000000ff7f5000-00000000ff7f7000 0000000000002000 -rw
00000000ffffa000-00000000ffffc000 0000000000002000 -rw

info memヘルプには、 「アクティブな仮想メモリマッピングを表示する」ために使用できると記載されています。最初の2列は仮想メモリの範囲を示し、3番目の列は範囲の長さを示します。しかし、これらのマッピングは正確には何ですか?それが仮想メモリの場合、それはどのプロセスに属しますか?

info mtreeコマンドで同様の状況。

4

1 に答える 1

8

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 リストには、それを追加した元のパッチの機能と、時間の経過とともに機能に加えられたいくつかの改善についての説明があります。

info mem

ご指摘のとおり、このコマンドはアクティブな仮想メモリ マッピングを表示します。これは特定のプロセス用ではなく、コマンドを実行したとき の現在のページ テーブル用です。このページには、出力形式に関するもう少し詳しい情報があります。

Qemu はMMU レベルの情報しか認識しないため、プロセス レベルの情報を取得するには、エミュレートしている Linux OS 内で何かを行う必要があります。

于 2013-08-18T16:27:45.413 に答える