From: Markus Armbruster <armbru@redhat.com>
To: "Marc-André Lureau" <marcandre.lureau@redhat.com>
Cc: qemu-devel@nongnu.org,
"Zhenzhong Duan" <zhenzhong.duan@intel.com>,
"Michael S. Tsirkin" <mst@redhat.com>,
"David Hildenbrand" <david@kernel.org>,
"Paolo Bonzini" <pbonzini@redhat.com>,
"Peter Xu" <peterx@redhat.com>,
"Philippe Mathieu-Daudé" <philmd@mailo.com>,
qemu-rust@nongnu.org, "Alex Williamson" <alex@shazbot.org>,
"Cédric Le Goater" <clg@redhat.com>,
"Maciej S. Szmigiero" <maciej.szmigiero@oracle.com>,
"Fabiano Rosas" <farosas@suse.de>,
"Mark Kanda" <mark.kanda@oracle.com>,
"Ben Chaney" <bchaney@akamai.com>,
"Marcelo Tosatti" <mtosatti@redhat.com>,
kvm@vger.kernel.org, "Dr. David Alan Gilbert" <dave@treblig.org>,
"Zhao Liu" <zhao1.liu@intel.com>,
"Eric Blake" <eblake@redhat.com>
Subject: Re: [PATCH v5 12/12] RFC: monitor: add 'info ramblock-attributes' command
Date: Mon, 08 Jun 2026 15:30:02 +0200 [thread overview]
Message-ID: <87a4t5tb1h.fsf@pond.sub.org> (raw)
In-Reply-To: <20260604-rdm5-v5-12-5768e6a0943d@redhat.com> ("Marc-André Lureau"'s message of "Thu, 04 Jun 2026 17:43:58 +0400")
Marc-André Lureau <marcandre.lureau@redhat.com> writes:
> Add a new 'info ramblock-attributes' HMP command and the corresponding
> 'x-query-ramblock-attributes' QMP command to display the shared/private
> memory attributes for ram blocks.
>
> The QMP command returns structured data (RamBlockAttributesInfo list
> with per-range shared/populated attributes), while HMP formats it for
> human consumption.
>
> This is useful for debugging confidential guests (TDX, SNP) to inspect
> which memory regions are shared vs private, and their population state
> when a RamDiscardManager is present (e.g. virtio-mem).
>
> Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
> ---
> qapi/machine.json | 56 ++++++++++++++++++++++++++++++++++
> include/monitor/hmp.h | 1 +
> hw/core/machine-hmp-cmds.c | 32 +++++++++++++++++++
> system/ram-block-attributes.c | 71 +++++++++++++++++++++++++++++++++++++++++++
> hmp-commands-info.hx | 13 ++++++++
> 5 files changed, 173 insertions(+)
>
> diff --git a/qapi/machine.json b/qapi/machine.json
> index 685e4e29b87..a1af5c61176 100644
> --- a/qapi/machine.json
> +++ b/qapi/machine.json
> @@ -1738,6 +1738,62 @@
> 'returns': 'HumanReadableText',
> 'features': [ 'unstable' ] }
>
> +##
> +# @RamBlockAttributeRange:
> +#
> +# A contiguous range within a ram block with uniform attributes.
RAM please. More of the same below, not flagging it again.
> +#
> +# @start: start offset in bytes within the ram block
> +#
> +# @length: length in bytes of the range
> +#
> +# @shared: true if the range is shared, false if private
Can we assume that anybody with a use for x-query-ramblock-attributes
understands what "range is shared" means?
> +#
> +# @populated: true if the entire range is fully populated across all
> +# RamDiscardManager sources; false if any sub-block is discarded.
> +# Only present when a RamDiscardManager is managing the block.
Can we assume that anybody with a use for x-query-ramblock-attributes
understands what "a RamDiscardManager is managing the block" means?
I can't find anything about RamDiscardManager in docs. Would it make
sense to have something there, so we can point to it here?
> +#
> +# Since: 11.1
> +##
> +{ 'struct': 'RamBlockAttributeRange',
> + 'data': { 'start': 'uint64',
> + 'length': 'uint64',
> + 'shared': 'bool',
> + '*populated': 'bool' } }
> +
> +##
> +# @RamBlockAttributesInfo:
> +#
> +# Shared/private memory attributes for a ram block.
> +#
> +# @name: the ram block identifier
Apparently, this is a memory region name, obtained with
memory_region_name(). Correct?
If yes, then what about "@name: the memory region name"? Or maybe "the
name of the RAM block's memory region"?
> +#
> +# @ranges: list of attribute ranges
> +#
> +# Since: 11.1
> +##
> +{ 'struct': 'RamBlockAttributesInfo',
> + 'data': { 'name': 'str',
> + 'ranges': [ 'RamBlockAttributeRange' ] } }
> +
> +##
> +# @x-query-ramblock-attributes:
> +#
> +# Query ram block shared/private attributes. This is useful
> +# to debug confidential guests.
Ignorant question: how are RAM blocks related to memory regions?
> +#
> +# Features:
> +#
> +# @unstable: This command is meant for debugging.
> +#
> +# Returns: list of ram block attributes
> +#
> +# Since: 11.1
> +##
> +{ 'command': 'x-query-ramblock-attributes',
> + 'returns': [ 'RamBlockAttributesInfo' ],
> + 'features': [ 'unstable' ] }
> +
> ##
> # @x-query-roms:
> #
[...]
prev parent reply other threads:[~2026-06-08 13:30 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-06-04 13:43 [PATCH v5 00/12] Make RamDiscardManager work with multiple sources & virtio-mem Marc-André Lureau
2026-06-04 13:43 ` [PATCH v5 01/12] system/memory: split RamDiscardManager into source and manager Marc-André Lureau
2026-06-04 13:43 ` [PATCH v5 02/12] system/memory: move RamDiscardManager to separate compilation unit Marc-André Lureau
2026-06-04 13:43 ` [PATCH v5 03/12] system/memory: constify section arguments Marc-André Lureau
2026-06-05 11:16 ` David Hildenbrand (Arm)
2026-06-08 12:48 ` Maciej S. Szmigiero
2026-06-04 13:43 ` [PATCH v5 04/12] system/ram-discard-manager: implement replay via is_populated iteration Marc-André Lureau
2026-06-05 12:00 ` David Hildenbrand (Arm)
2026-06-04 13:43 ` [PATCH v5 05/12] virtio-mem: remove replay_populated/replay_discarded implementation Marc-André Lureau
2026-06-04 13:43 ` [PATCH v5 06/12] system/ram-discard-manager: drop replay from source interface Marc-André Lureau
2026-06-04 13:43 ` [PATCH v5 07/12] system/memory: implement RamDiscardManager multi-source aggregation Marc-André Lureau
2026-06-04 13:43 ` [PATCH v5 08/12] system/physmem: destroy ram block attributes before RCU-deferred reclaim Marc-André Lureau
2026-06-04 13:43 ` [PATCH v5 09/12] system/memory: add RamDiscardManager reference counting and cleanup Marc-André Lureau
2026-06-04 13:43 ` [PATCH v5 10/12] tests: add unit tests for RamDiscardManager multi-source aggregation Marc-André Lureau
2026-06-04 13:43 ` [PATCH v5 11/12] system/physmem: make ram_block_discard_range() handle guest_memfd Marc-André Lureau
2026-06-04 13:43 ` [PATCH v5 12/12] RFC: monitor: add 'info ramblock-attributes' command Marc-André Lureau
2026-06-05 13:28 ` Dr. David Alan Gilbert
2026-06-08 13:36 ` Markus Armbruster
2026-06-08 13:30 ` Markus Armbruster [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=87a4t5tb1h.fsf@pond.sub.org \
--to=armbru@redhat.com \
--cc=alex@shazbot.org \
--cc=bchaney@akamai.com \
--cc=clg@redhat.com \
--cc=dave@treblig.org \
--cc=david@kernel.org \
--cc=eblake@redhat.com \
--cc=farosas@suse.de \
--cc=kvm@vger.kernel.org \
--cc=maciej.szmigiero@oracle.com \
--cc=marcandre.lureau@redhat.com \
--cc=mark.kanda@oracle.com \
--cc=mst@redhat.com \
--cc=mtosatti@redhat.com \
--cc=pbonzini@redhat.com \
--cc=peterx@redhat.com \
--cc=philmd@mailo.com \
--cc=qemu-devel@nongnu.org \
--cc=qemu-rust@nongnu.org \
--cc=zhao1.liu@intel.com \
--cc=zhenzhong.duan@intel.com \
/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.