qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Rowan Hart <rowanbhart@gmail.com>
To: Pierrick Bouvier <pierrick.bouvier@linaro.org>, qemu-devel@nongnu.org
Cc: "Alexandre Iooss" <erdnaxe@crans.org>,
	"Richard Henderson" <richard.henderson@linaro.org>,
	"Alex Bennée" <alex.bennee@linaro.org>,
	"Eduardo Habkost" <eduardo@habkost.net>,
	"Philippe Mathieu-Daudé" <philmd@linaro.org>,
	"Mahmoud Mandour" <ma.mandourr@gmail.com>,
	"Paolo Bonzini" <pbonzini@redhat.com>
Subject: Re: [PATCH v3 5/8] Add memory hardware address read/write API
Date: Wed, 21 May 2025 20:34:42 -0700	[thread overview]
Message-ID: <9e1ebea2-bfbf-4ba6-85fa-c068d627d9e1@gmail.com> (raw)
In-Reply-To: <348a6c09-3c8d-471f-af6c-e8201760614e@linaro.org>

Well, first I just noticed that I left a debug print in this function! 
So I'll fix that.

> Reading this patch, and patch 3 (Add address space API), I am not sure 
> AddressSpace is something we want to leak in plugins interface.
> It is a concept *very* internal to QEMU, and not reflecting directly 
> something concerning the emulated architecture (it is related, but not 
> officially described for it).
>
> The same way qemu_plugin_write_memory_vaddr is only valid in the 
> current page table setup, we could assume the same for current address 
> space, and return an error if memory is not mapped with current AS.
> Eventually, we could read/write a given hwaddr in all existing address 
> spaces (starting with current mapped one), if it makes sense to do 
> this, which I'm not sure about.
>
> What are your thoughts on this? 

I definitely see the arguments for not exposing it even as an opaque 
struct, internality not withstanding it also adds some complexity for 
plugin authors.

My thought with exposing it is kind of twofold. First, there are 
specific address spaces like the secure address space on ARM or I/O 
memory on x86 that plugins might like to access and I think it's easiest 
to facilitate that if we just let them choose which one they want to r/w 
to. Second, I wanted to lean towards being less restrictive now to avoid 
having to go back and remove restrictions later since even though it's 
very internal, it doesn't seem very likely to change.

That said, if you think it's more trouble than it's worth I'm totally 
fine with just defaulting to writing to the current AS (or to 
cpu-memory, whichever's more reasonable). Your call, just let me know 
which way you think is best for v4 :)

> qemu_plugin_translate_vaddr is fine for me. 
I did have a question about this -- one of the test plugins prints out 
vaddr, haddr from qemu_plugin_insn_haddr, and the translated haddr from 
qemu_plugin_translate_vaddr. When running with direct memory mappings in 
a system test, the vaddr = translated haddr, which is correct, but the 
haddr from qemu_plugin_insn_haddr was incorrect (it was 0x7f....f<actual 
address>). Is this expected behavior?

Thanks for the feedback!




  reply	other threads:[~2025-05-22  3:35 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-05-21  9:43 [PATCH v3 0/8] Add additional plugin API functions to read and write memory and registers Rowan Hart
2025-05-21  9:43 ` [PATCH v3 1/8] Expose gdb_write_register function to consumers of gdbstub Rowan Hart
2025-05-21 22:52   ` Pierrick Bouvier
2025-05-22  8:53   ` Manos Pitsidianakis
2025-05-22 11:59   ` Julian Ganz
2025-05-21  9:43 ` [PATCH v3 2/8] Add register write API Rowan Hart
2025-05-21 22:52   ` Pierrick Bouvier
2025-05-22 11:59   ` Julian Ganz
2025-05-22 15:02     ` Rowan Hart
2025-05-22 15:16       ` Julian Ganz
2025-05-22 15:39   ` Alex Bennée
2025-05-22 20:11     ` Rowan Hart
2025-05-21  9:43 ` [PATCH v3 3/8] Add address space API Rowan Hart
2025-05-21  9:43 ` [PATCH v3 4/8] Add memory virtual address write API Rowan Hart
2025-05-21 22:53   ` Pierrick Bouvier
2025-05-21  9:43 ` [PATCH v3 5/8] Add memory hardware address read/write API Rowan Hart
2025-05-21 23:18   ` Pierrick Bouvier
2025-05-22  3:34     ` Rowan Hart [this message]
2025-05-22 19:46       ` Pierrick Bouvier
2025-05-22 11:59   ` Julian Ganz
2025-05-22 19:16     ` Pierrick Bouvier
2025-05-22 21:01       ` Rowan Hart
2025-05-22 22:37         ` Pierrick Bouvier
2025-05-21  9:43 ` [PATCH v3 6/8] Add patcher plugin and test Rowan Hart
2025-05-21  9:43 ` [PATCH v3 7/8] Add hypercalls " Rowan Hart
2025-05-21  9:43 ` [PATCH v3 8/8] Update plugin version and add notes Rowan Hart

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=9e1ebea2-bfbf-4ba6-85fa-c068d627d9e1@gmail.com \
    --to=rowanbhart@gmail.com \
    --cc=alex.bennee@linaro.org \
    --cc=eduardo@habkost.net \
    --cc=erdnaxe@crans.org \
    --cc=ma.mandourr@gmail.com \
    --cc=pbonzini@redhat.com \
    --cc=philmd@linaro.org \
    --cc=pierrick.bouvier@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=richard.henderson@linaro.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).