All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
To: Peter Xu <peterx@redhat.com>
Cc: qemu-devel@nongnu.org, Paolo Bonzini <pbonzini@redhat.com>,
	Markus Armbruster <armbru@redhat.com>
Subject: Re: [Qemu-devel] [PATCH v6 3/3] ramblock: add new hmp command "info ramblock"
Date: Wed, 10 May 2017 10:59:36 +0100	[thread overview]
Message-ID: <20170510095935.GA4230@work-vm> (raw)
In-Reply-To: <1494388889-3558-4-git-send-email-peterx@redhat.com>

* Peter Xu (peterx@redhat.com) wrote:
> 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.
> 
> Signed-off-by: Peter Xu <peterx@redhat.com>

Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>

> ---
>  exec.c                 | 22 ++++++++++++++++++++++
>  hmp-commands-info.hx   | 14 ++++++++++++++
>  hmp.c                  |  6 ++++++
>  hmp.h                  |  1 +
>  include/exec/ramlist.h |  1 +
>  5 files changed, 44 insertions(+)
> 
> diff --git a/exec.c b/exec.c
> index 50519ae..821bef3 100644
> --- a/exec.c
> +++ b/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
> diff --git a/hmp-commands-info.hx b/hmp-commands-info.hx
> index a53f105..ae16901 100644
> --- a/hmp-commands-info.hx
> +++ b/hmp-commands-info.hx
> @@ -788,6 +788,20 @@ Display the latest dump status.
>  ETEXI
>  
>      {
> +        .name       = "ramblock",
> +        .args_type  = "",
> +        .params     = "",
> +        .help       = "Display system ramblock information",
> +        .cmd        = hmp_info_ramblock,
> +    },
> +
> +STEXI
> +@item info ramblock
> +@findex ramblock
> +Dump all the ramblocks of the system.
> +ETEXI
> +
> +    {
>          .name       = "hotpluggable-cpus",
>          .args_type  = "",
>          .params     = "",
> diff --git a/hmp.c b/hmp.c
> index ab407d6..8369388 100644
> --- a/hmp.c
> +++ b/hmp.c
> @@ -37,6 +37,7 @@
>  #include "qemu-io.h"
>  #include "qemu/cutils.h"
>  #include "qemu/error-report.h"
> +#include "exec/ramlist.h"
>  #include "hw/intc/intc.h"
>  
>  #ifdef CONFIG_SPICE
> @@ -2563,6 +2564,11 @@ void hmp_info_dump(Monitor *mon, const QDict *qdict)
>      qapi_free_DumpQueryResult(result);
>  }
>  
> +void hmp_info_ramblock(Monitor *mon, const QDict *qdict)
> +{
> +    ram_block_dump(mon);
> +}
> +
>  void hmp_hotpluggable_cpus(Monitor *mon, const QDict *qdict)
>  {
>      Error *err = NULL;
> diff --git a/hmp.h b/hmp.h
> index 799fd37..7353b67 100644
> --- a/hmp.h
> +++ b/hmp.h
> @@ -136,6 +136,7 @@ void hmp_rocker_ports(Monitor *mon, const QDict *qdict);
>  void hmp_rocker_of_dpa_flows(Monitor *mon, const QDict *qdict);
>  void hmp_rocker_of_dpa_groups(Monitor *mon, const QDict *qdict);
>  void hmp_info_dump(Monitor *mon, const QDict *qdict);
> +void hmp_info_ramblock(Monitor *mon, const QDict *qdict);
>  void hmp_hotpluggable_cpus(Monitor *mon, const QDict *qdict);
>  void hmp_info_vm_generation_id(Monitor *mon, const QDict *qdict);
>  
> diff --git a/include/exec/ramlist.h b/include/exec/ramlist.h
> index f1c6b45..2e2ac6c 100644
> --- a/include/exec/ramlist.h
> +++ b/include/exec/ramlist.h
> @@ -73,5 +73,6 @@ void ram_block_notifier_remove(RAMBlockNotifier *n);
>  void ram_block_notify_add(void *host, size_t size);
>  void ram_block_notify_remove(void *host, size_t size);
>  
> +void ram_block_dump(Monitor *mon);
>  
>  #endif /* RAMLIST_H */
> -- 
> 2.7.4
> 
--
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK

      reply	other threads:[~2017-05-10  9:59 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-05-10  4:01 [Qemu-devel] [PATCH v6 0/3] ramblock: add hmp command "info ramblock" Peter Xu
2017-05-10  4:01 ` [Qemu-devel] [PATCH v6 1/3] ramblock: add RAMBLOCK_FOREACH() Peter Xu
2017-05-10  4:01 ` [Qemu-devel] [PATCH v6 2/3] utils: provide size_to_str() Peter Xu
2017-05-10 10:14   ` Dr. David Alan Gilbert
2017-05-10 11:34   ` Markus Armbruster
2017-05-11 12:13     ` Peter Xu
2017-05-10  4:01 ` [Qemu-devel] [PATCH v6 3/3] ramblock: add new hmp command "info ramblock" Peter Xu
2017-05-10  9:59   ` Dr. David Alan Gilbert [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20170510095935.GA4230@work-vm \
    --to=dgilbert@redhat.com \
    --cc=armbru@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=peterx@redhat.com \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.