On 10/21/2026 11:12 AM, Pierrick Bouvier wrote: > This series removes duplication of cpu_get_note_size and cpu_get_dump_info per > target. For this, we define a new sysemu operations for a given cpu, and > implement it per target. > > Existing implementations were using first_cpu, which is what we continue to > do. > When we'll work on heterogeneous later, we can revisit this to either forbid a > dump, or perform a dump for each target active. Meanwhile, add a check if we > run > heterogeneous emulation, and refuse to dump if that's the case. > > v5 > -- > > - remove redundant typedefs for ArchDumpInfo and GuestPhysBlockList > - make new sysemu op infallible (get_dump_info has no return, and > get_note_size > return size_t). Keep fallible global wrappers. > > v4 > -- > > - define global wrapper for cpu_get_dump_info and cpu_get_note_size, both > using > the sysemu op we introduced. > > v3 > -- > > - riscv_get_dump_info: add const to riscv cpu > - use forward decl for ArchDumpInfo instead of including system/dump.h > - use forward decl for GuestPhysBlockList instead of including > system/memory_mapping.h > - update comment for get_note_size sysemu ops > - add target_heterogeneous to target_info: returns false for now > - edit commit description for dump_init changes about why we can have > first_cpu null > - add target_heterogeneous check in dump_init > - rebased on master (previous "based on" is not needed anymore) > > v2 > -- > > - Add new ops to existing SysEmuOps instead of a new DumpOps. > > Pierrick Bouvier (21): > target-info: add target_heterogeneous > dump/dump: do not dump machine if doing heterogeneous emulation > include/qemu/typedefs: add ArchDumpInfo > include/qemu/typedefs: add GuestPhysBlockList > hw/core/sysemu-cpu-ops: add get_dump_info > target/arm: implement get_dump_info sysemu op > target/i386: implement get_dump_info sysemu op > target/ppc/cpu: constify cpu parameter for > ppc_interrupts_little_endian > target/ppc: implement get_dump_info sysemu op > target/riscv: implement get_dump_info sysemu op > target/s390x: implement get_dump_info sysemu op > target/loongarch: implement get_dump_info sysemu op > dump: reimplement cpu_get_dump_info using get_dump_info sysemu op > hw/core/sysemu-cpu-ops: add get_note_size > target/arm: implement get_note_size sysemu op > target/i386: implement get_note_size sysemu op > target/ppc: implement get_note_size sysemu op > target/riscv: implement get_note_size sysemu op > target/s390x: implement get_note_size sysemu op > target/loongarch: implement get_note_size sysemu op > dump: reimplement cpu_get_note_size using get_note_size sysemu op > > dump/dump.c | 14 ++++++++++---- > hw/core/cpu-system.c | 19 +++++++++++++++++++ > include/hw/core/cpu.h | 24 ++++++++++++++++++++++++ > include/hw/core/sysemu-cpu-ops.h | 12 ++++++++++++ > include/qemu/target-info.h | 8 ++++++++ > include/qemu/typedefs.h | 2 ++ > include/system/dump-arch.h | 9 ++------- > include/system/memory_mapping.h | 4 ++-- > stubs/dump.c | 27 --------------------------- > stubs/meson.build | 1 - > target-info.c | 6 ++++++ > target/arm/arch_dump.c | 22 +++++++--------------- > target/arm/cpu.c | 2 ++ > target/arm/internals.h | 4 ++++ > target/i386/arch_dump.c | 14 +++++++------- > target/i386/cpu-internal.h | 5 +++++ > target/i386/cpu.c | 2 ++ > target/loongarch/arch_dump.c | 9 ++++----- > target/loongarch/cpu.c | 2 ++ > target/loongarch/internals.h | 5 +++++ > target/ppc/arch_dump.c | 18 ++++++------------ > target/ppc/cpu.h | 6 +++--- > target/ppc/cpu_init.c | 2 ++ > target/ppc/internal.h | 7 +++++++ > target/riscv/arch_dump.c | 20 +++++++------------- > target/riscv/cpu.c | 2 ++ > target/riscv/internals.h | 4 ++++ > target/s390x/arch_dump.c | 8 ++++---- > target/s390x/cpu-system.c | 2 ++ > target/s390x/s390x-internal.h | 5 +++++ > 30 files changed, 165 insertions(+), 100 deletions(-) > delete mode 100644 stubs/dump.c >
This was merged into master (3745b15e090e3dbcfcf28fc96928abba8fd2ed2a). Regards, Pierrick
