* [Qemu-devel] [PATCH 0/2] hw/ppc/spapr: Improve error printing
@ 2015-04-29 19:01 Thomas Huth
2015-04-29 19:01 ` [Qemu-devel] [PATCH 1/2] hw/ppc/spapr: Fix error message when firmware could not be loaded Thomas Huth
` (2 more replies)
0 siblings, 3 replies; 7+ messages in thread
From: Thomas Huth @ 2015-04-29 19:01 UTC (permalink / raw)
To: qemu-devel, qemu-ppc; +Cc: aik, agraf, david
While loading alternate slof.bin images with the "-bios" option
of qemu-softmmu-ppc64, I noticed that the error message is
wrong when trying to load an non-existing file. Also, the
error message is printed with hw_error() which results in a
huge CPU register dump - something you don't expect when you
just typed in a wrong filename, and is rather confusing here
since you've got to find the real error message in the huge
output first. So let's fix that, too.
Thomas Huth (2):
ppc/spapr: Fix error message when firmware could not be loaded
hw/ppc/spapr: Use error_report() instead of hw_error()
hw/ppc/spapr.c | 18 +++++++++---------
1 file changed, 9 insertions(+), 9 deletions(-)
--
1.8.3.1
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Qemu-devel] [PATCH 1/2] hw/ppc/spapr: Fix error message when firmware could not be loaded
2015-04-29 19:01 [Qemu-devel] [PATCH 0/2] hw/ppc/spapr: Improve error printing Thomas Huth
@ 2015-04-29 19:01 ` Thomas Huth
2015-04-29 19:01 ` [Qemu-devel] [PATCH 2/2] hw/ppc/spapr: Use error_report() instead of hw_error() Thomas Huth
2015-04-30 1:02 ` [Qemu-devel] [PATCH 0/2] hw/ppc/spapr: Improve error printing David Gibson
2 siblings, 0 replies; 7+ messages in thread
From: Thomas Huth @ 2015-04-29 19:01 UTC (permalink / raw)
To: qemu-devel, qemu-ppc; +Cc: aik, agraf, david
When specifying a non-existing file with the "-bios" parameter, QEMU
complained that it "could not find LPAR rtas". That's obviously a
copy-n-paste bug from the code which loads the spapr-rtas.bin, it
should complain about a missing firmware file instead.
Additionally the error message was printed with hw_error() - which
also dumps the whole CPU state. However, this does not make much
sense here since the CPU is not running yet and thus the registers
only contain zeroes. So let's use error_report() here instead.
And while we're at it, let's also bail out if the firmware file
had zero length.
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
hw/ppc/spapr.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
index 61ddc79..226f029 100644
--- a/hw/ppc/spapr.c
+++ b/hw/ppc/spapr.c
@@ -1641,12 +1641,12 @@ static void ppc_spapr_init(MachineState *machine)
}
filename = qemu_find_file(QEMU_FILE_TYPE_BIOS, bios_name);
if (!filename) {
- hw_error("Could not find LPAR rtas '%s'\n", bios_name);
+ error_report("Could not find LPAR firmware '%s'", bios_name);
exit(1);
}
fw_size = load_image_targphys(filename, 0, FW_MAX_SIZE);
- if (fw_size < 0) {
- hw_error("qemu: could not load LPAR rtas '%s'\n", filename);
+ if (fw_size <= 0) {
+ error_report("Could not load LPAR firmware '%s'", filename);
exit(1);
}
g_free(filename);
--
1.8.3.1
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [Qemu-devel] [PATCH 2/2] hw/ppc/spapr: Use error_report() instead of hw_error()
2015-04-29 19:01 [Qemu-devel] [PATCH 0/2] hw/ppc/spapr: Improve error printing Thomas Huth
2015-04-29 19:01 ` [Qemu-devel] [PATCH 1/2] hw/ppc/spapr: Fix error message when firmware could not be loaded Thomas Huth
@ 2015-04-29 19:01 ` Thomas Huth
2015-04-30 3:32 ` Alexey Kardashevskiy
2015-04-30 1:02 ` [Qemu-devel] [PATCH 0/2] hw/ppc/spapr: Improve error printing David Gibson
2 siblings, 1 reply; 7+ messages in thread
From: Thomas Huth @ 2015-04-29 19:01 UTC (permalink / raw)
To: qemu-devel, qemu-ppc; +Cc: aik, agraf, david
hw_error() is designed for printing CPU-related error messages
(e.g. it also prints a full CPU register dump). For error messages
that are not directly related to CPU problems, a function like
error_report() should be used instead.
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
hw/ppc/spapr.c | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
index 226f029..92b1c0b 100644
--- a/hw/ppc/spapr.c
+++ b/hw/ppc/spapr.c
@@ -794,8 +794,8 @@ static void spapr_finalize_fdt(sPAPREnvironment *spapr,
_FDT((fdt_pack(fdt)));
if (fdt_totalsize(fdt) > FDT_MAX_SIZE) {
- hw_error("FDT too big ! 0x%x bytes (max is 0x%x)\n",
- fdt_totalsize(fdt), FDT_MAX_SIZE);
+ error_report("FDT too big ! 0x%x bytes (max is 0x%x)",
+ fdt_totalsize(fdt), FDT_MAX_SIZE);
exit(1);
}
@@ -1419,7 +1419,7 @@ static void ppc_spapr_init(MachineState *machine)
rma_alloc_size = kvmppc_alloc_rma(&rma);
if (rma_alloc_size == -1) {
- hw_error("qemu: Unable to create RMA\n");
+ error_report("Unable to create RMA");
exit(1);
}
@@ -1520,17 +1520,17 @@ static void ppc_spapr_init(MachineState *machine)
filename = qemu_find_file(QEMU_FILE_TYPE_BIOS, "spapr-rtas.bin");
if (!filename) {
- hw_error("Could not find LPAR rtas '%s'\n", "spapr-rtas.bin");
+ error_report("Could not find LPAR rtas '%s'", "spapr-rtas.bin");
exit(1);
}
spapr->rtas_size = get_image_size(filename);
spapr->rtas_blob = g_malloc(spapr->rtas_size);
if (load_image_size(filename, spapr->rtas_blob, spapr->rtas_size) < 0) {
- hw_error("qemu: could not load LPAR rtas '%s'\n", filename);
+ error_report("Could not load LPAR rtas '%s'", filename);
exit(1);
}
if (spapr->rtas_size > RTAS_MAX_SIZE) {
- hw_error("RTAS too big ! 0x%zx bytes (max is 0x%x)\n",
+ error_report("RTAS too big ! 0x%zx bytes (max is 0x%x)",
(size_t)spapr->rtas_size, RTAS_MAX_SIZE);
exit(1);
}
--
1.8.3.1
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [Qemu-devel] [PATCH 0/2] hw/ppc/spapr: Improve error printing
2015-04-29 19:01 [Qemu-devel] [PATCH 0/2] hw/ppc/spapr: Improve error printing Thomas Huth
2015-04-29 19:01 ` [Qemu-devel] [PATCH 1/2] hw/ppc/spapr: Fix error message when firmware could not be loaded Thomas Huth
2015-04-29 19:01 ` [Qemu-devel] [PATCH 2/2] hw/ppc/spapr: Use error_report() instead of hw_error() Thomas Huth
@ 2015-04-30 1:02 ` David Gibson
2 siblings, 0 replies; 7+ messages in thread
From: David Gibson @ 2015-04-30 1:02 UTC (permalink / raw)
To: Thomas Huth; +Cc: aik, qemu-ppc, qemu-devel, agraf
[-- Attachment #1: Type: text/plain, Size: 929 bytes --]
On Wed, Apr 29, 2015 at 09:01:06PM +0200, Thomas Huth wrote:
> While loading alternate slof.bin images with the "-bios" option
> of qemu-softmmu-ppc64, I noticed that the error message is
> wrong when trying to load an non-existing file. Also, the
> error message is printed with hw_error() which results in a
> huge CPU register dump - something you don't expect when you
> just typed in a wrong filename, and is rather confusing here
> since you've got to find the real error message in the huge
> output first. So let's fix that, too.
>
> Thomas Huth (2):
> ppc/spapr: Fix error message when firmware could not be loaded
> hw/ppc/spapr: Use error_report() instead of hw_error()
Thanks, applied to spapr-next.
--
David Gibson | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_
| _way_ _around_!
http://www.ozlabs.org/~dgibson
[-- Attachment #2: Type: application/pgp-signature, Size: 819 bytes --]
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Qemu-devel] [PATCH 2/2] hw/ppc/spapr: Use error_report() instead of hw_error()
2015-04-29 19:01 ` [Qemu-devel] [PATCH 2/2] hw/ppc/spapr: Use error_report() instead of hw_error() Thomas Huth
@ 2015-04-30 3:32 ` Alexey Kardashevskiy
2015-04-30 17:03 ` Thomas Huth
0 siblings, 1 reply; 7+ messages in thread
From: Alexey Kardashevskiy @ 2015-04-30 3:32 UTC (permalink / raw)
To: Thomas Huth, qemu-devel, qemu-ppc; +Cc: agraf, david
On 04/30/2015 05:01 AM, Thomas Huth wrote:
> hw_error() is designed for printing CPU-related error messages
> (e.g. it also prints a full CPU register dump). For error messages
> that are not directly related to CPU problems, a function like
> error_report() should be used instead.
>
> Signed-off-by: Thomas Huth <thuth@redhat.com>
> ---
> hw/ppc/spapr.c | 12 ++++++------
> 1 file changed, 6 insertions(+), 6 deletions(-)
>
> diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
> index 226f029..92b1c0b 100644
> --- a/hw/ppc/spapr.c
> +++ b/hw/ppc/spapr.c
> @@ -794,8 +794,8 @@ static void spapr_finalize_fdt(sPAPREnvironment *spapr,
> _FDT((fdt_pack(fdt)));
>
> if (fdt_totalsize(fdt) > FDT_MAX_SIZE) {
> - hw_error("FDT too big ! 0x%x bytes (max is 0x%x)\n",
> - fdt_totalsize(fdt), FDT_MAX_SIZE);
> + error_report("FDT too big ! 0x%x bytes (max is 0x%x)",
> + fdt_totalsize(fdt), FDT_MAX_SIZE);
You did adjust indent here...
> exit(1);
> }
>
> @@ -1419,7 +1419,7 @@ static void ppc_spapr_init(MachineState *machine)
> rma_alloc_size = kvmppc_alloc_rma(&rma);
>
> if (rma_alloc_size == -1) {
> - hw_error("qemu: Unable to create RMA\n");
> + error_report("Unable to create RMA");
> exit(1);
> }
>
> @@ -1520,17 +1520,17 @@ static void ppc_spapr_init(MachineState *machine)
>
> filename = qemu_find_file(QEMU_FILE_TYPE_BIOS, "spapr-rtas.bin");
> if (!filename) {
> - hw_error("Could not find LPAR rtas '%s'\n", "spapr-rtas.bin");
> + error_report("Could not find LPAR rtas '%s'", "spapr-rtas.bin");
> exit(1);
> }
> spapr->rtas_size = get_image_size(filename);
> spapr->rtas_blob = g_malloc(spapr->rtas_size);
> if (load_image_size(filename, spapr->rtas_blob, spapr->rtas_size) < 0) {
> - hw_error("qemu: could not load LPAR rtas '%s'\n", filename);
> + error_report("Could not load LPAR rtas '%s'", filename);
> exit(1);
> }
> if (spapr->rtas_size > RTAS_MAX_SIZE) {
> - hw_error("RTAS too big ! 0x%zx bytes (max is 0x%x)\n",
> + error_report("RTAS too big ! 0x%zx bytes (max is 0x%x)",
> (size_t)spapr->rtas_size, RTAS_MAX_SIZE);
... but not here :)
> exit(1);
> }
>
--
Alexey
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Qemu-devel] [PATCH 2/2] hw/ppc/spapr: Use error_report() instead of hw_error()
2015-04-30 3:32 ` Alexey Kardashevskiy
@ 2015-04-30 17:03 ` Thomas Huth
2015-05-01 3:42 ` David Gibson
0 siblings, 1 reply; 7+ messages in thread
From: Thomas Huth @ 2015-04-30 17:03 UTC (permalink / raw)
To: Alexey Kardashevskiy, david; +Cc: qemu-ppc, qemu-devel, agraf
On Thu, 30 Apr 2015 13:32:05 +1000
Alexey Kardashevskiy <aik@ozlabs.ru> wrote:
> On 04/30/2015 05:01 AM, Thomas Huth wrote:
> > hw_error() is designed for printing CPU-related error messages
> > (e.g. it also prints a full CPU register dump). For error messages
> > that are not directly related to CPU problems, a function like
> > error_report() should be used instead.
> >
> > Signed-off-by: Thomas Huth <thuth@redhat.com>
> > ---
> > hw/ppc/spapr.c | 12 ++++++------
> > 1 file changed, 6 insertions(+), 6 deletions(-)
> >
> > diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
> > index 226f029..92b1c0b 100644
> > --- a/hw/ppc/spapr.c
> > +++ b/hw/ppc/spapr.c
> > @@ -794,8 +794,8 @@ static void spapr_finalize_fdt(sPAPREnvironment *spapr,
> > _FDT((fdt_pack(fdt)));
> >
> > if (fdt_totalsize(fdt) > FDT_MAX_SIZE) {
> > - hw_error("FDT too big ! 0x%x bytes (max is 0x%x)\n",
> > - fdt_totalsize(fdt), FDT_MAX_SIZE);
> > + error_report("FDT too big ! 0x%x bytes (max is 0x%x)",
> > + fdt_totalsize(fdt), FDT_MAX_SIZE);
>
> You did adjust indent here...
>
>
> > exit(1);
> > }
> >
> > @@ -1419,7 +1419,7 @@ static void ppc_spapr_init(MachineState *machine)
> > rma_alloc_size = kvmppc_alloc_rma(&rma);
> >
> > if (rma_alloc_size == -1) {
> > - hw_error("qemu: Unable to create RMA\n");
> > + error_report("Unable to create RMA");
> > exit(1);
> > }
> >
> > @@ -1520,17 +1520,17 @@ static void ppc_spapr_init(MachineState *machine)
> >
> > filename = qemu_find_file(QEMU_FILE_TYPE_BIOS, "spapr-rtas.bin");
> > if (!filename) {
> > - hw_error("Could not find LPAR rtas '%s'\n", "spapr-rtas.bin");
> > + error_report("Could not find LPAR rtas '%s'", "spapr-rtas.bin");
> > exit(1);
> > }
> > spapr->rtas_size = get_image_size(filename);
> > spapr->rtas_blob = g_malloc(spapr->rtas_size);
> > if (load_image_size(filename, spapr->rtas_blob, spapr->rtas_size) < 0) {
> > - hw_error("qemu: could not load LPAR rtas '%s'\n", filename);
> > + error_report("Could not load LPAR rtas '%s'", filename);
> > exit(1);
> > }
> > if (spapr->rtas_size > RTAS_MAX_SIZE) {
> > - hw_error("RTAS too big ! 0x%zx bytes (max is 0x%x)\n",
> > + error_report("RTAS too big ! 0x%zx bytes (max is 0x%x)",
> > (size_t)spapr->rtas_size, RTAS_MAX_SIZE);
>
> ... but not here :)
Alexey, you're right, of course.
David, since you already picked up that patch, could you maybe amend
this cosmetic cleanup to my patch? Or shall I send a new version of the
patch or a fixup patch?
Thomas
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Qemu-devel] [PATCH 2/2] hw/ppc/spapr: Use error_report() instead of hw_error()
2015-04-30 17:03 ` Thomas Huth
@ 2015-05-01 3:42 ` David Gibson
0 siblings, 0 replies; 7+ messages in thread
From: David Gibson @ 2015-05-01 3:42 UTC (permalink / raw)
To: Thomas Huth; +Cc: Alexey Kardashevskiy, qemu-ppc, qemu-devel, agraf
[-- Attachment #1: Type: text/plain, Size: 3190 bytes --]
On Thu, Apr 30, 2015 at 07:03:20PM +0200, Thomas Huth wrote:
> On Thu, 30 Apr 2015 13:32:05 +1000
> Alexey Kardashevskiy <aik@ozlabs.ru> wrote:
>
> > On 04/30/2015 05:01 AM, Thomas Huth wrote:
> > > hw_error() is designed for printing CPU-related error messages
> > > (e.g. it also prints a full CPU register dump). For error messages
> > > that are not directly related to CPU problems, a function like
> > > error_report() should be used instead.
> > >
> > > Signed-off-by: Thomas Huth <thuth@redhat.com>
> > > ---
> > > hw/ppc/spapr.c | 12 ++++++------
> > > 1 file changed, 6 insertions(+), 6 deletions(-)
> > >
> > > diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
> > > index 226f029..92b1c0b 100644
> > > --- a/hw/ppc/spapr.c
> > > +++ b/hw/ppc/spapr.c
> > > @@ -794,8 +794,8 @@ static void spapr_finalize_fdt(sPAPREnvironment *spapr,
> > > _FDT((fdt_pack(fdt)));
> > >
> > > if (fdt_totalsize(fdt) > FDT_MAX_SIZE) {
> > > - hw_error("FDT too big ! 0x%x bytes (max is 0x%x)\n",
> > > - fdt_totalsize(fdt), FDT_MAX_SIZE);
> > > + error_report("FDT too big ! 0x%x bytes (max is 0x%x)",
> > > + fdt_totalsize(fdt), FDT_MAX_SIZE);
> >
> > You did adjust indent here...
> >
> >
> > > exit(1);
> > > }
> > >
> > > @@ -1419,7 +1419,7 @@ static void ppc_spapr_init(MachineState *machine)
> > > rma_alloc_size = kvmppc_alloc_rma(&rma);
> > >
> > > if (rma_alloc_size == -1) {
> > > - hw_error("qemu: Unable to create RMA\n");
> > > + error_report("Unable to create RMA");
> > > exit(1);
> > > }
> > >
> > > @@ -1520,17 +1520,17 @@ static void ppc_spapr_init(MachineState *machine)
> > >
> > > filename = qemu_find_file(QEMU_FILE_TYPE_BIOS, "spapr-rtas.bin");
> > > if (!filename) {
> > > - hw_error("Could not find LPAR rtas '%s'\n", "spapr-rtas.bin");
> > > + error_report("Could not find LPAR rtas '%s'", "spapr-rtas.bin");
> > > exit(1);
> > > }
> > > spapr->rtas_size = get_image_size(filename);
> > > spapr->rtas_blob = g_malloc(spapr->rtas_size);
> > > if (load_image_size(filename, spapr->rtas_blob, spapr->rtas_size) < 0) {
> > > - hw_error("qemu: could not load LPAR rtas '%s'\n", filename);
> > > + error_report("Could not load LPAR rtas '%s'", filename);
> > > exit(1);
> > > }
> > > if (spapr->rtas_size > RTAS_MAX_SIZE) {
> > > - hw_error("RTAS too big ! 0x%zx bytes (max is 0x%x)\n",
> > > + error_report("RTAS too big ! 0x%zx bytes (max is 0x%x)",
> > > (size_t)spapr->rtas_size, RTAS_MAX_SIZE);
> >
> > ... but not here :)
>
> Alexey, you're right, of course.
>
> David, since you already picked up that patch, could you maybe amend
> this cosmetic cleanup to my patch? Or shall I send a new version of the
> patch or a fixup patch?
Amended, thanks.
--
David Gibson | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_
| _way_ _around_!
http://www.ozlabs.org/~dgibson
[-- Attachment #2: Type: application/pgp-signature, Size: 819 bytes --]
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2015-05-01 3:56 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-04-29 19:01 [Qemu-devel] [PATCH 0/2] hw/ppc/spapr: Improve error printing Thomas Huth
2015-04-29 19:01 ` [Qemu-devel] [PATCH 1/2] hw/ppc/spapr: Fix error message when firmware could not be loaded Thomas Huth
2015-04-29 19:01 ` [Qemu-devel] [PATCH 2/2] hw/ppc/spapr: Use error_report() instead of hw_error() Thomas Huth
2015-04-30 3:32 ` Alexey Kardashevskiy
2015-04-30 17:03 ` Thomas Huth
2015-05-01 3:42 ` David Gibson
2015-04-30 1:02 ` [Qemu-devel] [PATCH 0/2] hw/ppc/spapr: Improve error printing David Gibson
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).