2013-02-27 2 views
4

Я пытаюсь понять управление памятью QEMU (используя i386 гостей, без KVM). Монитор QEMU позволяет перечислять информацию о регистрах CPU (info registers), устройства USB (info usb), сети (info network) и так далее.Что делают команды «info mem» и «info mtree» для QEMU?

Но как насчет info mem и info mtree команд? Отсутствует документация, и сложно понять, что делают эти команды.

Например, я запустил QEMU из некоторого ISO и дал ему 128 МБ ОЗУ. 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 «показать активные отображения виртуальной памяти». Первые два столбца дают диапазоны виртуальной памяти, а третий показывает длину диапазона. Но каковы именно эти сопоставления? Если это виртуальная память, то к какому процессу она принадлежит?

Аналогичная ситуация с командой info mtree.

ответ

5

info mtree

Эта команда показывает hiearchy памяти процесса. В журнале фиксации для QEmu следующая запись создает первую версию этой функции. То, что info mtree действительно делает, печатает отображение системной памяти на разные устройства. Иерархия этих устройств также представлена.

commit 314e298735903035ba2b7b0f3cf39981f4171546 
Author: Blue Swirl <[email protected]> 
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 <[email protected]> 
    Signed-off-by: Avi Kivity <[email protected]> 

Qemu-devel list имеет обсуждение функции для оригинального патча, который добавил его, а также некоторые improvements сделанные в особенности в течение долгого времени.

info mem

Как отмечалось, эта команда показывает активные отображения виртуальной памяти. Это не для конкретного процесса, а вместо этого только текущей таблицы при запуске команды. This page имеет немного больше информации о формате вывода.

Чтобы получить информацию о уровне процесса, вам нужно что-то сделать в операционной системе Linux, которую вы эмулируете, поскольку Qemu знает только MMU-level information.