On 10/19/2026 2:26 PM, 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. > > 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 | 18 ++++++++++++++++++ > include/hw/core/cpu.h | 24 ++++++++++++++++++++++++ > include/hw/core/sysemu-cpu-ops.h | 13 +++++++++++++ > include/qemu/target-info.h | 8 ++++++++ > include/qemu/typedefs.h | 2 ++ > include/system/dump-arch.h | 5 ----- > stubs/dump.c | 27 --------------------------- > stubs/meson.build | 1 - > target-info.c | 6 ++++++ > target/arm/arch_dump.c | 18 ++++++------------ > target/arm/cpu.c | 2 ++ > target/arm/internals.h | 4 ++++ > target/i386/arch_dump.c | 10 ++++++---- > target/i386/cpu-internal.h | 5 +++++ > target/i386/cpu.c | 2 ++ > target/loongarch/arch_dump.c | 7 ++++--- > target/loongarch/cpu.c | 2 ++ > target/loongarch/internals.h | 5 +++++ > target/ppc/arch_dump.c | 16 ++++++---------- > target/ppc/cpu.h | 6 +++--- > target/ppc/cpu_init.c | 2 ++ > target/ppc/internal.h | 7 +++++++ > target/riscv/arch_dump.c | 18 +++++++----------- > target/riscv/cpu.c | 2 ++ > target/riscv/internals.h | 4 ++++ > target/s390x/arch_dump.c | 7 ++++--- > target/s390x/cpu-system.c | 2 ++ > target/s390x/s390x-internal.h | 5 +++++ > 29 files changed, 159 insertions(+), 83 deletions(-) > delete mode 100644 stubs/dump.c >
Sent v5, addressing Philippe's suggestions: https://lore.kernel.org/qemu-devel/[email protected]/T/# Regards, Pierrick
