From: "Philippe Mathieu-Daudé" <f4bug@amsat.org> To: qemu-devel@nongnu.org Cc: "Peter Maydell" <peter.maydell@linaro.org>, "Thomas Huth" <thuth@redhat.com>, "Cornelia Huck" <cohuck@redhat.com>, qemu-riscv@nongnu.org, "Eduardo Habkost" <ehabkost@redhat.com>, "Juan Quintela" <quintela@redhat.com>, "Michael S. Tsirkin" <mst@redhat.com>, "Richard Henderson" <richard.henderson@linaro.org>, "Greg Kurz" <groug@kaod.org>, "Laurent Vivier" <laurent@vivier.eu>, qemu-s390x@nongnu.org, qemu-arm@nongnu.org, qemu-ppc@nongnu.org, "Claudio Fontana" <cfontana@suse.de>, "Paolo Bonzini" <pbonzini@redhat.com>, "David Hildenbrand" <david@redhat.com>, "Philippe Mathieu-Daudé" <f4bug@amsat.org> Subject: [PATCH v5 09/15] cpu: Move CPUClass::get_crash_info to SysemuCPUOps Date: Thu, 22 Apr 2021 12:46:58 +0200 [thread overview] Message-ID: <20210422104705.2454166-10-f4bug@amsat.org> (raw) In-Reply-To: <20210422104705.2454166-1-f4bug@amsat.org> cpu_get_crash_info() is called on GUEST_PANICKED events, which only occur in system emulation. Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> --- include/hw/core/cpu.h | 1 - include/hw/core/sysemu-cpu-ops.h | 5 +++++ hw/core/cpu.c | 4 ++-- target/i386/cpu.c | 2 +- target/s390x/cpu.c | 2 +- 5 files changed, 9 insertions(+), 5 deletions(-) diff --git a/include/hw/core/cpu.h b/include/hw/core/cpu.h index e3c702b8b74..4289cd0d78a 100644 --- a/include/hw/core/cpu.h +++ b/include/hw/core/cpu.h @@ -150,7 +150,6 @@ struct CPUClass { int (*memory_rw_debug)(CPUState *cpu, vaddr addr, uint8_t *buf, int len, bool is_write); void (*dump_state)(CPUState *cpu, FILE *, int flags); - GuestPanicInformation* (*get_crash_info)(CPUState *cpu); void (*dump_statistics)(CPUState *cpu, int flags); int64_t (*get_arch_id)(CPUState *cpu); bool (*get_paging_enabled)(const CPUState *cpu); diff --git a/include/hw/core/sysemu-cpu-ops.h b/include/hw/core/sysemu-cpu-ops.h index 9c3ac4f2280..b9ffca07665 100644 --- a/include/hw/core/sysemu-cpu-ops.h +++ b/include/hw/core/sysemu-cpu-ops.h @@ -16,6 +16,11 @@ * struct SysemuCPUOps: System operations specific to a CPU class */ typedef struct SysemuCPUOps { + /** + * @get_crash_info: Callback for reporting guest crash information in + * GUEST_PANICKED events. + */ + GuestPanicInformation* (*get_crash_info)(CPUState *cpu); /** * @virtio_is_big_endian: Callback to return %true if a CPU which supports * runtime configurable endianness is currently big-endian. diff --git a/hw/core/cpu.c b/hw/core/cpu.c index 09eaa3fa49f..0aebc18c41f 100644 --- a/hw/core/cpu.c +++ b/hw/core/cpu.c @@ -220,8 +220,8 @@ GuestPanicInformation *cpu_get_crash_info(CPUState *cpu) CPUClass *cc = CPU_GET_CLASS(cpu); GuestPanicInformation *res = NULL; - if (cc->get_crash_info) { - res = cc->get_crash_info(cpu); + if (cc->sysemu_ops->get_crash_info) { + res = cc->sysemu_ops->get_crash_info(cpu); } return res; } diff --git a/target/i386/cpu.c b/target/i386/cpu.c index a0cce7aafda..538104d4557 100644 --- a/target/i386/cpu.c +++ b/target/i386/cpu.c @@ -7393,6 +7393,7 @@ static Property x86_cpu_properties[] = { #ifndef CONFIG_USER_ONLY static const struct SysemuCPUOps i386_sysemu_ops = { + .get_crash_info = x86_cpu_get_crash_info, .vmsd = &vmstate_x86_cpu, }; #endif @@ -7432,7 +7433,6 @@ static void x86_cpu_common_class_init(ObjectClass *oc, void *data) cc->asidx_from_attrs = x86_asidx_from_attrs; cc->get_memory_mapping = x86_cpu_get_memory_mapping; cc->get_phys_page_attrs_debug = x86_cpu_get_phys_page_attrs_debug; - cc->get_crash_info = x86_cpu_get_crash_info; cc->write_elf64_note = x86_cpu_write_elf64_note; cc->write_elf64_qemunote = x86_cpu_write_elf64_qemunote; cc->write_elf32_note = x86_cpu_write_elf32_note; diff --git a/target/s390x/cpu.c b/target/s390x/cpu.c index fe908d9bc40..fdc169bb0ac 100644 --- a/target/s390x/cpu.c +++ b/target/s390x/cpu.c @@ -479,6 +479,7 @@ static void s390_cpu_reset_full(DeviceState *dev) #ifndef CONFIG_USER_ONLY static const struct SysemuCPUOps s390_sysemu_ops = { + .get_crash_info = s390_cpu_get_crash_info, .vmsd = &vmstate_s390_cpu, }; #endif @@ -523,7 +524,6 @@ static void s390_cpu_class_init(ObjectClass *oc, void *data) cc->gdb_write_register = s390_cpu_gdb_write_register; #ifndef CONFIG_USER_ONLY cc->get_phys_page_debug = s390_cpu_get_phys_page_debug; - cc->get_crash_info = s390_cpu_get_crash_info; cc->write_elf64_note = s390_cpu_write_elf64_note; cc->sysemu_ops = &s390_sysemu_ops; #endif -- 2.26.3
WARNING: multiple messages have this Message-ID (diff)
From: "Philippe Mathieu-Daudé" <f4bug@amsat.org> To: qemu-devel@nongnu.org Cc: "Paolo Bonzini" <pbonzini@redhat.com>, "Claudio Fontana" <cfontana@suse.de>, "Juan Quintela" <quintela@redhat.com>, "Greg Kurz" <groug@kaod.org>, "Laurent Vivier" <laurent@vivier.eu>, qemu-riscv@nongnu.org, "Michael S. Tsirkin" <mst@redhat.com>, qemu-ppc@nongnu.org, qemu-s390x@nongnu.org, "Peter Maydell" <peter.maydell@linaro.org>, qemu-arm@nongnu.org, "Eduardo Habkost" <ehabkost@redhat.com>, "Philippe Mathieu-Daudé" <f4bug@amsat.org>, "Richard Henderson" <richard.henderson@linaro.org>, "Marcel Apfelbaum" <marcel.apfelbaum@gmail.com>, "David Hildenbrand" <david@redhat.com>, "Cornelia Huck" <cohuck@redhat.com>, "Thomas Huth" <thuth@redhat.com> Subject: [PATCH v5 09/15] cpu: Move CPUClass::get_crash_info to SysemuCPUOps Date: Thu, 22 Apr 2021 12:46:58 +0200 [thread overview] Message-ID: <20210422104705.2454166-10-f4bug@amsat.org> (raw) In-Reply-To: <20210422104705.2454166-1-f4bug@amsat.org> cpu_get_crash_info() is called on GUEST_PANICKED events, which only occur in system emulation. Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> --- include/hw/core/cpu.h | 1 - include/hw/core/sysemu-cpu-ops.h | 5 +++++ hw/core/cpu.c | 4 ++-- target/i386/cpu.c | 2 +- target/s390x/cpu.c | 2 +- 5 files changed, 9 insertions(+), 5 deletions(-) diff --git a/include/hw/core/cpu.h b/include/hw/core/cpu.h index e3c702b8b74..4289cd0d78a 100644 --- a/include/hw/core/cpu.h +++ b/include/hw/core/cpu.h @@ -150,7 +150,6 @@ struct CPUClass { int (*memory_rw_debug)(CPUState *cpu, vaddr addr, uint8_t *buf, int len, bool is_write); void (*dump_state)(CPUState *cpu, FILE *, int flags); - GuestPanicInformation* (*get_crash_info)(CPUState *cpu); void (*dump_statistics)(CPUState *cpu, int flags); int64_t (*get_arch_id)(CPUState *cpu); bool (*get_paging_enabled)(const CPUState *cpu); diff --git a/include/hw/core/sysemu-cpu-ops.h b/include/hw/core/sysemu-cpu-ops.h index 9c3ac4f2280..b9ffca07665 100644 --- a/include/hw/core/sysemu-cpu-ops.h +++ b/include/hw/core/sysemu-cpu-ops.h @@ -16,6 +16,11 @@ * struct SysemuCPUOps: System operations specific to a CPU class */ typedef struct SysemuCPUOps { + /** + * @get_crash_info: Callback for reporting guest crash information in + * GUEST_PANICKED events. + */ + GuestPanicInformation* (*get_crash_info)(CPUState *cpu); /** * @virtio_is_big_endian: Callback to return %true if a CPU which supports * runtime configurable endianness is currently big-endian. diff --git a/hw/core/cpu.c b/hw/core/cpu.c index 09eaa3fa49f..0aebc18c41f 100644 --- a/hw/core/cpu.c +++ b/hw/core/cpu.c @@ -220,8 +220,8 @@ GuestPanicInformation *cpu_get_crash_info(CPUState *cpu) CPUClass *cc = CPU_GET_CLASS(cpu); GuestPanicInformation *res = NULL; - if (cc->get_crash_info) { - res = cc->get_crash_info(cpu); + if (cc->sysemu_ops->get_crash_info) { + res = cc->sysemu_ops->get_crash_info(cpu); } return res; } diff --git a/target/i386/cpu.c b/target/i386/cpu.c index a0cce7aafda..538104d4557 100644 --- a/target/i386/cpu.c +++ b/target/i386/cpu.c @@ -7393,6 +7393,7 @@ static Property x86_cpu_properties[] = { #ifndef CONFIG_USER_ONLY static const struct SysemuCPUOps i386_sysemu_ops = { + .get_crash_info = x86_cpu_get_crash_info, .vmsd = &vmstate_x86_cpu, }; #endif @@ -7432,7 +7433,6 @@ static void x86_cpu_common_class_init(ObjectClass *oc, void *data) cc->asidx_from_attrs = x86_asidx_from_attrs; cc->get_memory_mapping = x86_cpu_get_memory_mapping; cc->get_phys_page_attrs_debug = x86_cpu_get_phys_page_attrs_debug; - cc->get_crash_info = x86_cpu_get_crash_info; cc->write_elf64_note = x86_cpu_write_elf64_note; cc->write_elf64_qemunote = x86_cpu_write_elf64_qemunote; cc->write_elf32_note = x86_cpu_write_elf32_note; diff --git a/target/s390x/cpu.c b/target/s390x/cpu.c index fe908d9bc40..fdc169bb0ac 100644 --- a/target/s390x/cpu.c +++ b/target/s390x/cpu.c @@ -479,6 +479,7 @@ static void s390_cpu_reset_full(DeviceState *dev) #ifndef CONFIG_USER_ONLY static const struct SysemuCPUOps s390_sysemu_ops = { + .get_crash_info = s390_cpu_get_crash_info, .vmsd = &vmstate_s390_cpu, }; #endif @@ -523,7 +524,6 @@ static void s390_cpu_class_init(ObjectClass *oc, void *data) cc->gdb_write_register = s390_cpu_gdb_write_register; #ifndef CONFIG_USER_ONLY cc->get_phys_page_debug = s390_cpu_get_phys_page_debug; - cc->get_crash_info = s390_cpu_get_crash_info; cc->write_elf64_note = s390_cpu_write_elf64_note; cc->sysemu_ops = &s390_sysemu_ops; #endif -- 2.26.3
next prev parent reply other threads:[~2021-04-22 11:03 UTC|newest] Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-04-22 10:46 [PATCH v5 00/15] cpu: Introduce SysemuCPUOps structure Philippe Mathieu-Daudé 2021-04-22 10:46 ` Philippe Mathieu-Daudé 2021-04-22 10:46 ` [PATCH v5 01/15] cpu: Un-inline cpu_get_phys_page_debug and cpu_asidx_from_attrs Philippe Mathieu-Daudé 2021-04-22 10:46 ` Philippe Mathieu-Daudé 2021-04-22 10:46 ` [PATCH v5 02/15] cpu: Introduce cpu_virtio_is_big_endian() Philippe Mathieu-Daudé 2021-04-22 10:46 ` Philippe Mathieu-Daudé 2021-04-22 10:46 ` [PATCH v5 03/15] cpu: Directly use cpu_write_elf*() fallback handlers in place Philippe Mathieu-Daudé 2021-04-22 10:46 ` Philippe Mathieu-Daudé 2021-04-22 10:46 ` [PATCH v5 04/15] cpu: Directly use get_paging_enabled() " Philippe Mathieu-Daudé 2021-04-22 10:46 ` Philippe Mathieu-Daudé 2021-04-22 10:46 ` [PATCH v5 05/15] cpu: Directly use get_memory_mapping() " Philippe Mathieu-Daudé 2021-04-22 10:46 ` Philippe Mathieu-Daudé 2021-04-22 10:46 ` [PATCH v5 06/15] cpu: Introduce SysemuCPUOps structure Philippe Mathieu-Daudé 2021-04-22 10:46 ` Philippe Mathieu-Daudé 2021-04-22 10:46 ` [PATCH v5 07/15] cpu: Move CPUClass::vmsd to SysemuCPUOps Philippe Mathieu-Daudé 2021-04-22 10:46 ` Philippe Mathieu-Daudé 2021-04-22 11:04 ` Philippe Mathieu-Daudé 2021-04-22 11:04 ` Philippe Mathieu-Daudé 2021-04-22 10:46 ` [PATCH v5 08/15] cpu: Move CPUClass::virtio_is_big_endian " Philippe Mathieu-Daudé 2021-04-22 10:46 ` Philippe Mathieu-Daudé 2021-04-22 10:46 ` Philippe Mathieu-Daudé [this message] 2021-04-22 10:46 ` [PATCH v5 09/15] cpu: Move CPUClass::get_crash_info " Philippe Mathieu-Daudé 2021-04-22 10:46 ` [PATCH v5 10/15] cpu: Move CPUClass::write_elf* " Philippe Mathieu-Daudé 2021-04-22 10:46 ` Philippe Mathieu-Daudé 2021-04-22 10:47 ` [PATCH v5 11/15] cpu: Move CPUClass::asidx_from_attrs " Philippe Mathieu-Daudé 2021-04-22 10:47 ` Philippe Mathieu-Daudé 2021-04-22 10:47 ` [PATCH v5 12/15] cpu: Move CPUClass::get_phys_page_debug " Philippe Mathieu-Daudé 2021-04-22 10:47 ` Philippe Mathieu-Daudé 2021-04-22 10:47 ` [PATCH v5 13/15] cpu: Move CPUClass::get_memory_mapping " Philippe Mathieu-Daudé 2021-04-22 10:47 ` Philippe Mathieu-Daudé 2021-04-22 10:47 ` [PATCH v5 14/15] cpu: Move CPUClass::get_paging_enabled " Philippe Mathieu-Daudé 2021-04-22 10:47 ` Philippe Mathieu-Daudé 2021-04-22 10:47 ` [PATCH v5 15/15] cpu: Restrict "hw/core/sysemu-cpu-ops.h" to target/cpu.c Philippe Mathieu-Daudé 2021-04-22 10:47 ` Philippe Mathieu-Daudé
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=20210422104705.2454166-10-f4bug@amsat.org \ --to=f4bug@amsat.org \ --cc=cfontana@suse.de \ --cc=cohuck@redhat.com \ --cc=david@redhat.com \ --cc=ehabkost@redhat.com \ --cc=groug@kaod.org \ --cc=laurent@vivier.eu \ --cc=mst@redhat.com \ --cc=pbonzini@redhat.com \ --cc=peter.maydell@linaro.org \ --cc=qemu-arm@nongnu.org \ --cc=qemu-devel@nongnu.org \ --cc=qemu-ppc@nongnu.org \ --cc=qemu-riscv@nongnu.org \ --cc=qemu-s390x@nongnu.org \ --cc=quintela@redhat.com \ --cc=richard.henderson@linaro.org \ --cc=thuth@redhat.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: linkBe 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.