Sorry for the delayed engagement, I failed to apply the patch set from
the mailing list and had to remember that David had published this
change set on GitHub.
Tested-by: Stefan Zabka <g...@zabka.it>
This addresses my initial use case of being able to write to a single
MMIO device. I have not set up a scenario with an interleaving of
MMIO and RAM/ROM regions to ensure that a single large write is
correctly handled there.
Reviewed-by: Stefan Zabka <g...@zabka.it>
I don't know if this counts for anything, but I've read through the
entire patch series, tried to make sense of it and couldn't spot any
issues. It should be noted that I am a terrible C programmer and have
only written basic devices so far.
On 10/02/2025 09:46, David Hildenbrand wrote:
This is a follow-up to [1], implementing it by avoiding the use of
address_space_write_rom() in cpu_memory_rw_debug() completely, and
teaching address_space_write() about debug access instead, the can also
write to ROM.
The goal is to let GDB via cpu_memory_rw_debug() to also properly write to
MMIO device regions, not just RAM/ROM.
It's worth noting that other users of address_space_write_rom() are
left unchanged. Maybe hw/core/loader.c and friends could now be converted
to to a debug access via address_space_write() instead?
Survives a basic gitlab CI build/check.
[1] https://lore.kernel.org/all/20241220195923.314208-1-...@zabka.it/
v2 -> v3:
* Rebased, only a minor conflict in the last patch.
v1 -> v2:
* Split up "physmem: disallow direct access to RAM DEVICE in
address_space_write_rom()" into 4 patches
Cc: Paolo Bonzini <pbonz...@redhat.com>
Cc: Peter Xu <pet...@redhat.com>
Cc: Philippe Mathieu-Daudé <phi...@linaro.org>
Cc: Peter Maydell <peter.mayd...@linaro.org>
Cc: Alex Bennée <alex.ben...@linaro.org>
Cc: Alex Williamson <alex.william...@redhat.com>
Cc: Eduardo Habkost <edua...@habkost.net>
Cc: Marcel Apfelbaum <marcel.apfelb...@gmail.com>
Cc: Elena Ufimtseva <elena.ufimts...@oracle.com>
Cc: Jagannathan Raman <jag.ra...@oracle.com>
Cc: "Dr. David Alan Gilbert" <d...@treblig.org>
Cc: Stefan Zabka <g...@zabka.it>
David Hildenbrand (7):
physmem: factor out memory_region_is_ram_device() check in
memory_access_is_direct()
physmem: factor out RAM/ROMD check in memory_access_is_direct()
physmem: factor out direct access check into
memory_region_supports_direct_access()
physmem: disallow direct access to RAM DEVICE in
address_space_write_rom()
memory: pass MemTxAttrs to memory_access_is_direct()
hmp: use cpu_get_phys_page_debug() in hmp_gva2gpa()
physmem: teach cpu_memory_rw_debug() to write to more memory regions
hw/core/cpu-system.c | 13 +++++++++----
hw/core/loader.c | 2 +-
hw/remote/vfio-user-obj.c | 2 +-
include/exec/memattrs.h | 5 ++++-
include/exec/memory.h | 35 +++++++++++++++++++++++++++--------
monitor/hmp-cmds-target.c | 3 +--
system/memory_ldst.c.inc | 18 +++++++++---------
system/physmem.c | 24 +++++++++---------------
8 files changed, 61 insertions(+), 41 deletions(-)