mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-12-17 21:26:13 -07:00
ramblock: add new hmp command "info ramblock"
To dump information about ramblocks. It looks like:
(qemu) info ramblock
Block Name PSize Offset Used Total
/objects/mem 2 MiB 0x0000000000000000 0x0000000080000000 0x0000000080000000
vga.vram 4 KiB 0x0000000080060000 0x0000000001000000 0x0000000001000000
/rom@etc/acpi/tables 4 KiB 0x00000000810b0000 0x0000000000020000 0x0000000000200000
pc.bios 4 KiB 0x0000000080000000 0x0000000000040000 0x0000000000040000
0000:00:03.0/e1000.rom 4 KiB 0x0000000081070000 0x0000000000040000 0x0000000000040000
pc.rom 4 KiB 0x0000000080040000 0x0000000000020000 0x0000000000020000
0000:00:02.0/vga.rom 4 KiB 0x0000000081060000 0x0000000000010000 0x0000000000010000
/rom@etc/table-loader 4 KiB 0x00000000812b0000 0x0000000000001000 0x0000000000001000
/rom@etc/acpi/rsdp 4 KiB 0x00000000812b1000 0x0000000000001000 0x0000000000001000
Ramblock is something hidden internally in QEMU implementation, and this
command should only be used by mostly QEMU developers on RAM stuff. It
is not a command suitable for QMP interface. So only HMP interface is
provided for it.
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Signed-off-by: Peter Xu <peterx@redhat.com>
Message-Id: <1494562661-9063-4-git-send-email-peterx@redhat.com>
Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
This commit is contained in:
parent
22951aaaeb
commit
be9b23c4a5
5 changed files with 44 additions and 0 deletions
22
exec.c
22
exec.c
|
|
@ -71,6 +71,8 @@
|
|||
#include "qemu/mmap-alloc.h"
|
||||
#endif
|
||||
|
||||
#include "monitor/monitor.h"
|
||||
|
||||
//#define DEBUG_SUBPAGE
|
||||
|
||||
#if !defined(CONFIG_USER_ONLY)
|
||||
|
|
@ -1333,6 +1335,26 @@ void qemu_mutex_unlock_ramlist(void)
|
|||
qemu_mutex_unlock(&ram_list.mutex);
|
||||
}
|
||||
|
||||
void ram_block_dump(Monitor *mon)
|
||||
{
|
||||
RAMBlock *block;
|
||||
char *psize;
|
||||
|
||||
rcu_read_lock();
|
||||
monitor_printf(mon, "%24s %8s %18s %18s %18s\n",
|
||||
"Block Name", "PSize", "Offset", "Used", "Total");
|
||||
RAMBLOCK_FOREACH(block) {
|
||||
psize = size_to_str(block->page_size);
|
||||
monitor_printf(mon, "%24s %8s 0x%016" PRIx64 " 0x%016" PRIx64
|
||||
" 0x%016" PRIx64 "\n", block->idstr, psize,
|
||||
(uint64_t)block->offset,
|
||||
(uint64_t)block->used_length,
|
||||
(uint64_t)block->max_length);
|
||||
g_free(psize);
|
||||
}
|
||||
rcu_read_unlock();
|
||||
}
|
||||
|
||||
#ifdef __linux__
|
||||
/*
|
||||
* FIXME TOCTTOU: this iterates over memory backends' mem-path, which
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue