We already have cpu_abort() to dump CPU states and abort.
Restrict hw_error() to peripheral errors, hoping we can completely
remove it by proper functions from "error-report.h" in the future.
Suggested-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
softmmu/cpus.c | 5 -----
1 file changed, 5 deletions(-)
diff --git a/softmmu/cpus.c b/softmmu/cpus.c
index a802e899abb..c96a04d7f18 100644
--- a/softmmu/cpus.c
+++ b/softmmu/cpus.c
@@ -913,16 +913,11 @@ static void stop_tcg_kick_timer(void)
void hw_error(const char *fmt, ...)
{
va_list ap;
- CPUState *cpu;
va_start(ap, fmt);
fprintf(stderr, "qemu: hardware error: ");
vfprintf(stderr, fmt, ap);
fprintf(stderr, "\n");
- CPU_FOREACH(cpu) {
- fprintf(stderr, "CPU #%d:\n", cpu->cpu_index);
- cpu_dump_state(cpu, stderr, CPU_DUMP_FPU);
- }
va_end(ap);
abort();
}
--
2.26.2
On 01/09/2020 13.23, Philippe Mathieu-Daudé wrote:
> We already have cpu_abort() to dump CPU states and abort.
>
> Restrict hw_error() to peripheral errors, hoping we can completely
> remove it by proper functions from "error-report.h" in the future.
>
> Suggested-by: Thomas Huth <thuth@redhat.com>
IIRC I rather suggested to rename the function to "cpu_hw_error" and
only use it for real CPU problems...
But I think your approach here is fine as well. Please replace the
"Suggested-by" with "Reviewed-by" now :-)
Thomas
> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
> ---
> softmmu/cpus.c | 5 -----
> 1 file changed, 5 deletions(-)
>
> diff --git a/softmmu/cpus.c b/softmmu/cpus.c
> index a802e899abb..c96a04d7f18 100644
> --- a/softmmu/cpus.c
> +++ b/softmmu/cpus.c
> @@ -913,16 +913,11 @@ static void stop_tcg_kick_timer(void)
> void hw_error(const char *fmt, ...)
> {
> va_list ap;
> - CPUState *cpu;
>
> va_start(ap, fmt);
> fprintf(stderr, "qemu: hardware error: ");
> vfprintf(stderr, fmt, ap);
> fprintf(stderr, "\n");
> - CPU_FOREACH(cpu) {
> - fprintf(stderr, "CPU #%d:\n", cpu->cpu_index);
> - cpu_dump_state(cpu, stderr, CPU_DUMP_FPU);
> - }
You could argue that cpu_abort() only prints the state of one CPU and
not of all. But I doubt that dumping the state of *all* CPUs is really
helpful in any of the contexts where hw_error() is used. So I think it's
fine to remove this CPU_FOREACH loop here.
> va_end(ap);
> abort();
> }
>
On 9/2/20 8:33 AM, Thomas Huth wrote:
> On 01/09/2020 13.23, Philippe Mathieu-Daudé wrote:
>> We already have cpu_abort() to dump CPU states and abort.
>>
>> Restrict hw_error() to peripheral errors, hoping we can completely
>> remove it by proper functions from "error-report.h" in the future.
>>
>> Suggested-by: Thomas Huth <thuth@redhat.com>
>
> IIRC I rather suggested to rename the function to "cpu_hw_error" and
> only use it for real CPU problems...
> But I think your approach here is fine as well. Please replace the
> "Suggested-by" with "Reviewed-by" now :-)
>
> Thomas
>
>
>> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
>> ---
>> softmmu/cpus.c | 5 -----
>> 1 file changed, 5 deletions(-)
>>
>> diff --git a/softmmu/cpus.c b/softmmu/cpus.c
>> index a802e899abb..c96a04d7f18 100644
>> --- a/softmmu/cpus.c
>> +++ b/softmmu/cpus.c
>> @@ -913,16 +913,11 @@ static void stop_tcg_kick_timer(void)
>> void hw_error(const char *fmt, ...)
>> {
>> va_list ap;
>> - CPUState *cpu;
>>
>> va_start(ap, fmt);
>> fprintf(stderr, "qemu: hardware error: ");
>> vfprintf(stderr, fmt, ap);
>> fprintf(stderr, "\n");
>> - CPU_FOREACH(cpu) {
>> - fprintf(stderr, "CPU #%d:\n", cpu->cpu_index);
>> - cpu_dump_state(cpu, stderr, CPU_DUMP_FPU);
>> - }
>
> You could argue that cpu_abort() only prints the state of one CPU and
> not of all. But I doubt that dumping the state of *all* CPUs is really
> helpful in any of the contexts where hw_error() is used. So I think it's
> fine to remove this CPU_FOREACH loop here.
I find this not very practical when using more than 8 vCPUs.
Personally I stopped looking at this output because it is too noisy.
Are there developers interested in having cpu_abort() dumping all
vCPU registers? I can move that there. Or the interested ones can
also do it later if they find it useful :)
>
>> va_end(ap);
>> abort();
>> }
>>
>
>
© 2016 - 2026 Red Hat, Inc.