Some commands (query-migrate and calc-dirty-rate) report values in units of pages. However, currently the only place where we can get page size is through query-migrate and only after migration has started. query-memory-size-summary seems like an appropritate place where it should be reported instead.
Signed-off-by: Andrei Gudkov <gudkov.and...@huawei.com> Reviewed-by: Eric Blake <ebl...@redhat.com> --- qapi/machine.json | 8 ++++++-- hw/core/machine-qmp-cmds.c | 3 +++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/qapi/machine.json b/qapi/machine.json index 37660d8f2a..b53afc1352 100644 --- a/qapi/machine.json +++ b/qapi/machine.json @@ -1125,10 +1125,13 @@ # field is omitted if target doesn't support memory hotplug (i.e. # CONFIG_MEM_DEVICE not defined at build time). # +# @page-size: size of target page in bytes (since 8.1) +# # Since: 2.11 ## { 'struct': 'MemoryInfo', - 'data' : { 'base-memory': 'size', '*plugged-memory': 'size' } } + 'data' : { 'base-memory': 'size', '*plugged-memory': 'size', + 'page-size': 'size' } } ## # @query-memory-size-summary: @@ -1139,7 +1142,8 @@ # Example: # # -> { "execute": "query-memory-size-summary" } -# <- { "return": { "base-memory": 4294967296, "plugged-memory": 0 } } +# <- { "return": { "page-size": 4096, "base-memory": 34359738368, +# "plugged-memory": 0 } } # # Since: 2.11 ## diff --git a/hw/core/machine-qmp-cmds.c b/hw/core/machine-qmp-cmds.c index 3860a50c3b..b768ff372f 100644 --- a/hw/core/machine-qmp-cmds.c +++ b/hw/core/machine-qmp-cmds.c @@ -27,6 +27,7 @@ #include "sysemu/numa.h" #include "sysemu/runstate.h" #include "sysemu/sysemu.h" +#include "exec/target_page.h" /* * fast means: we NEVER interrupt vCPU threads to retrieve @@ -289,6 +290,8 @@ MemoryInfo *qmp_query_memory_size_summary(Error **errp) mem_info->has_plugged_memory = mem_info->plugged_memory != (uint64_t)-1; + mem_info->page_size = qemu_target_page_size(); + return mem_info; } -- 2.30.2