diff options
author | Alexey Kardashevskiy | 2019-06-14 03:52:37 +0200 |
---|---|---|
committer | Paolo Bonzini | 2019-07-19 19:04:49 +0200 |
commit | 8072aae3770aed5ed1274a3d6b83a94672c6181a (patch) | |
tree | 5c99d7415b8eeb5b8f34ea9dd6e581b1ae375c80 /include/sysemu/accel.h | |
parent | test-bitmap: add test for bitmap_set (diff) | |
download | qemu-8072aae3770aed5ed1274a3d6b83a94672c6181a.tar.gz qemu-8072aae3770aed5ed1274a3d6b83a94672c6181a.tar.xz qemu-8072aae3770aed5ed1274a3d6b83a94672c6181a.zip |
hmp: Print if memory section is registered with an accelerator
This adds an accelerator name to the "into mtree -f" to tell the user if
a particular memory section is registered with the accelerator;
the primary user for this is KVM and such information is useful
for debugging purposes.
This adds a has_memory() callback to the accelerator class allowing any
accelerator to have a label in that memory tree dump.
Since memory sections are passed to memory listeners and get registered
in accelerators (rather than memory regions), this only prints new labels
for flatviews attached to the system address space.
An example:
Root memory region: system
0000000000000000-0000002fffffffff (prio 0, ram): /objects/mem0 kvm
0000003000000000-0000005fffffffff (prio 0, ram): /objects/mem1 kvm
0000200000000020-000020000000003f (prio 1, i/o): virtio-pci
0000200080000000-000020008000003f (prio 0, i/o): capabilities
Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
Message-Id: <20190614015237.82463-1-aik@ozlabs.ru>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'include/sysemu/accel.h')
-rw-r--r-- | include/sysemu/accel.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/include/sysemu/accel.h b/include/sysemu/accel.h index 81293cdb08..89ce57e404 100644 --- a/include/sysemu/accel.h +++ b/include/sysemu/accel.h @@ -25,6 +25,7 @@ #include "qom/object.h" #include "hw/qdev-properties.h" +#include "exec/hwaddr.h" typedef struct AccelState { /*< private >*/ @@ -39,6 +40,8 @@ typedef struct AccelClass { const char *name; int (*init_machine)(MachineState *ms); void (*setup_post)(MachineState *ms, AccelState *accel); + bool (*has_memory)(MachineState *ms, AddressSpace *as, + hwaddr start_addr, hwaddr size); bool *allowed; /* * Array of global properties that would be applied when specific |