[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v4 1/2] memory: tune mtree_print_mr() to dump mr
From: |
Dr. David Alan Gilbert |
Subject: |
Re: [Qemu-devel] [PATCH v4 1/2] memory: tune mtree_print_mr() to dump mr type |
Date: |
Tue, 17 Jan 2017 19:23:02 +0000 |
User-agent: |
Mutt/1.7.1 (2016-10-04) |
* Peter Xu (address@hidden) wrote:
> We were dumping RW bits for each memory region, that might be confusing.
> It'll make more sense to dump the memory region type directly rather
> than the RW bits since that's how the bits are derived.
>
> Meanwhile, with some slight cleanup in the function.
>
> Signed-off-by: Peter Xu <address@hidden>
Reviewed-by: Dr. David Alan Gilbert <address@hidden>
> ---
> memory.c | 48 +++++++++++++++++++++++++++---------------------
> 1 file changed, 27 insertions(+), 21 deletions(-)
>
> diff --git a/memory.c b/memory.c
> index 2bfc37f..c42bde4 100644
> --- a/memory.c
> +++ b/memory.c
> @@ -2450,6 +2450,21 @@ void address_space_destroy(AddressSpace *as)
> call_rcu(as, do_address_space_destroy, rcu);
> }
>
> +static const char *memory_region_type(MemoryRegion *mr)
> +{
> + if (memory_region_is_ram_device(mr)) {
> + return "ramd";
> + } else if (memory_region_is_romd(mr)) {
> + return "romd";
> + } else if (memory_region_is_rom(mr)) {
> + return "rom";
> + } else if (memory_region_is_ram(mr)) {
> + return "ram";
> + } else {
> + return "i/o";
> + }
> +}
> +
> typedef struct MemoryRegionList MemoryRegionList;
>
> struct MemoryRegionList {
> @@ -2459,6 +2474,10 @@ struct MemoryRegionList {
>
> typedef QTAILQ_HEAD(queue, MemoryRegionList) MemoryRegionListHead;
>
> +#define MR_SIZE(size) (int128_nz(size) ? (hwaddr)int128_get64( \
> + int128_sub((size), int128_one())) : 0)
> +#define MTREE_INDENT " "
> +
> static void mtree_print_mr(fprintf_function mon_printf, void *f,
> const MemoryRegion *mr, unsigned int level,
> hwaddr base,
> @@ -2474,7 +2493,7 @@ static void mtree_print_mr(fprintf_function mon_printf,
> void *f,
> }
>
> for (i = 0; i < level; i++) {
> - mon_printf(f, " ");
> + mon_printf(f, MTREE_INDENT);
> }
>
> if (mr->alias) {
> @@ -2494,37 +2513,24 @@ static void mtree_print_mr(fprintf_function
> mon_printf, void *f,
> QTAILQ_INSERT_TAIL(alias_print_queue, ml, queue);
> }
> mon_printf(f, TARGET_FMT_plx "-" TARGET_FMT_plx
> - " (prio %d, %c%c): alias %s @%s " TARGET_FMT_plx
> + " (prio %d, %s): alias %s @%s " TARGET_FMT_plx
> "-" TARGET_FMT_plx "%s\n",
> base + mr->addr,
> - base + mr->addr
> - + (int128_nz(mr->size) ?
> - (hwaddr)int128_get64(int128_sub(mr->size,
> - int128_one())) : 0),
> + base + mr->addr + MR_SIZE(mr->size),
> mr->priority,
> - mr->romd_mode ? 'R' : '-',
> - !mr->readonly && !(mr->rom_device && mr->romd_mode) ? 'W'
> - : '-',
> + memory_region_type((MemoryRegion *)mr),
> memory_region_name(mr),
> memory_region_name(mr->alias),
> mr->alias_offset,
> - mr->alias_offset
> - + (int128_nz(mr->size) ?
> - (hwaddr)int128_get64(int128_sub(mr->size,
> - int128_one())) : 0),
> + mr->alias_offset + MR_SIZE(mr->size),
> mr->enabled ? "" : " [disabled]");
> } else {
> mon_printf(f,
> - TARGET_FMT_plx "-" TARGET_FMT_plx " (prio %d, %c%c):
> %s%s\n",
> + TARGET_FMT_plx "-" TARGET_FMT_plx " (prio %d, %s):
> %s%s\n",
> base + mr->addr,
> - base + mr->addr
> - + (int128_nz(mr->size) ?
> - (hwaddr)int128_get64(int128_sub(mr->size,
> - int128_one())) : 0),
> + base + mr->addr + MR_SIZE(mr->size),
> mr->priority,
> - mr->romd_mode ? 'R' : '-',
> - !mr->readonly && !(mr->rom_device && mr->romd_mode) ? 'W'
> - : '-',
> + memory_region_type((MemoryRegion *)mr),
> memory_region_name(mr),
> mr->enabled ? "" : " [disabled]");
> }
> --
> 2.7.4
>
--
Dr. David Alan Gilbert / address@hidden / Manchester, UK