diff mbox series

[v3,1/7] hw/i386: Improve some of the warning messages

Message ID 5bf40ca8376c537ac05dd848a84e072a88a1d939.1504228916.git.alistair.francis@xilinx.com
State New
Headers show
Series More warning reporting fixed | expand

Commit Message

Alistair Francis Sept. 1, 2017, 4:51 p.m. UTC
Signed-off-by: Alistair Francis <alistair.francis@xilinx.com>
Suggested-by: Eduardo Habkost <ehabkost@redhat.com>
Cc: Eduardo Habkost <ehabkost@redhat.com>
---
V3:
 - Improve the messages

 hw/i386/acpi-build.c | 15 ++++++++++-----
 hw/i386/pc.c         |  7 +++----
 hw/i386/pc_q35.c     |  8 +++++---
 3 files changed, 18 insertions(+), 12 deletions(-)

Comments

Eduardo Habkost Sept. 4, 2017, 2:17 p.m. UTC | #1
On Fri, Sep 01, 2017 at 09:51:05AM -0700, Alistair Francis wrote:
[...]
> diff --git a/hw/i386/pc_q35.c b/hw/i386/pc_q35.c
> index 169a214d50..435eb2c458 100644
> --- a/hw/i386/pc_q35.c
> +++ b/hw/i386/pc_q35.c
> @@ -101,9 +101,11 @@ static void pc_q35_init(MachineState *machine)
>          lowmem = pcms->max_ram_below_4g;
>          if (machine->ram_size - lowmem > lowmem &&
>              lowmem & ((1ULL << 30) - 1)) {
> -            warn_report("Large machine and max_ram_below_4g(%"PRIu64
> -                        ") not a multiple of 1G; possible bad performance.",
> -                        pcms->max_ram_below_4g);
> +            warn_report("Large machine as the ram size (0x%" PRIx64 ") is more"
> +                        " then twice the size of the internal limit"
> +                        " (0x%" PRIx64 ") and max-ram-below-4g (%"PRIu64")"
> +                        " note a multiple of 1G; possible bad performance.",
> +                        machine->ram_size, lowmem, pcms->max_ram_below_4g);

Here lowmem and max_ram_below_4g have exactly the same value,
don't they?  There's no internal limit involved in this logic,
only max_ram_below_4g and ram_size.
Alistair Francis Sept. 5, 2017, 5:32 p.m. UTC | #2
On Mon, Sep 4, 2017 at 7:17 AM, Eduardo Habkost <ehabkost@redhat.com> wrote:
> On Fri, Sep 01, 2017 at 09:51:05AM -0700, Alistair Francis wrote:
> [...]
>> diff --git a/hw/i386/pc_q35.c b/hw/i386/pc_q35.c
>> index 169a214d50..435eb2c458 100644
>> --- a/hw/i386/pc_q35.c
>> +++ b/hw/i386/pc_q35.c
>> @@ -101,9 +101,11 @@ static void pc_q35_init(MachineState *machine)
>>          lowmem = pcms->max_ram_below_4g;
>>          if (machine->ram_size - lowmem > lowmem &&
>>              lowmem & ((1ULL << 30) - 1)) {
>> -            warn_report("Large machine and max_ram_below_4g(%"PRIu64
>> -                        ") not a multiple of 1G; possible bad performance.",
>> -                        pcms->max_ram_below_4g);
>> +            warn_report("Large machine as the ram size (0x%" PRIx64 ") is more"
>> +                        " then twice the size of the internal limit"
>> +                        " (0x%" PRIx64 ") and max-ram-below-4g (%"PRIu64")"
>> +                        " note a multiple of 1G; possible bad performance.",
>> +                        machine->ram_size, lowmem, pcms->max_ram_below_4g);
>
> Here lowmem and max_ram_below_4g have exactly the same value,
> don't they?  There's no internal limit involved in this logic,
> only max_ram_below_4g and ram_size.

Good point, I'll change it to this:

warn_report("There is possibly poor performance as the ram size "
            " (0x%" PRIx64 ") is more then twice the size of"
            " max-ram-below-4g (%"PRIu64") and"
            " max-ram-below-4g is not a multiple of 1G.",
            machine->ram_size, pcms->max_ram_below_4g);

Thanks,
Alistair

>
> --
> Eduardo
diff mbox series

Patch

diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c
index 98dd424678..142bd6433c 100644
--- a/hw/i386/acpi-build.c
+++ b/hw/i386/acpi-build.c
@@ -2780,17 +2780,22 @@  void acpi_build(AcpiBuildTables *tables, MachineState *machine)
                      ACPI_BUILD_ALIGN_SIZE);
         if (tables_blob->len > legacy_table_size) {
             /* Should happen only with PCI bridges and -M pc-i440fx-2.0.  */
-            warn_report("migration may not work.");
+            warn_report("ACPI table size %u exceeds %d bytes,"
+                        " migration may not work",
+                        tables_blob->len, legacy_table_size);
+            error_printf("Try removing CPUs, NUMA nodes, memory slots"
+                         " or PCI bridges.");
         }
         g_array_set_size(tables_blob, legacy_table_size);
     } else {
         /* Make sure we have a buffer in case we need to resize the tables. */
         if (tables_blob->len > ACPI_BUILD_TABLE_SIZE / 2) {
             /* As of QEMU 2.1, this fires with 160 VCPUs and 255 memory slots.  */
-            warn_report("ACPI tables are larger than 64k.");
-            warn_report("migration may not work.");
-            warn_report("please remove CPUs, NUMA nodes, "
-                        "memory slots or PCI bridges.");
+            warn_report("ACPI table size %u exceeds %d bytes,"
+                        " migration may not work",
+                        tables_blob->len, ACPI_BUILD_TABLE_SIZE / 2);
+            error_printf("Try removing CPUs, NUMA nodes, memory slots"
+                         " or PCI bridges.");
         }
         acpi_align_size(tables_blob, ACPI_BUILD_TABLE_SIZE);
     }
diff --git a/hw/i386/pc.c b/hw/i386/pc.c
index 21081041d5..c882f8c2ea 100644
--- a/hw/i386/pc.c
+++ b/hw/i386/pc.c
@@ -384,7 +384,7 @@  ISADevice *pc_find_fdc0(void)
         warn_report("multiple floppy disk controllers with "
                     "iobase=0x3f0 have been found");
         error_printf("the one being picked for CMOS setup might not reflect "
-                     "your intent\n");
+                     "your intent");
     }
 
     return state.floppy;
@@ -2098,9 +2098,8 @@  static void pc_machine_set_max_ram_below_4g(Object *obj, Visitor *v,
     }
 
     if (value < (1ULL << 20)) {
-        warn_report("small max_ram_below_4g(%"PRIu64
-                    ") less than 1M.  BIOS may not work..",
-                    value);
+        warn_report("Only %" PRIu64 " bytes of RAM below the 4GiB boundary,"
+                    "BIOS may not work with less than 1MiB", value);
     }
 
     pcms->max_ram_below_4g = value;
diff --git a/hw/i386/pc_q35.c b/hw/i386/pc_q35.c
index 169a214d50..435eb2c458 100644
--- a/hw/i386/pc_q35.c
+++ b/hw/i386/pc_q35.c
@@ -101,9 +101,11 @@  static void pc_q35_init(MachineState *machine)
         lowmem = pcms->max_ram_below_4g;
         if (machine->ram_size - lowmem > lowmem &&
             lowmem & ((1ULL << 30) - 1)) {
-            warn_report("Large machine and max_ram_below_4g(%"PRIu64
-                        ") not a multiple of 1G; possible bad performance.",
-                        pcms->max_ram_below_4g);
+            warn_report("Large machine as the ram size (0x%" PRIx64 ") is more"
+                        " then twice the size of the internal limit"
+                        " (0x%" PRIx64 ") and max-ram-below-4g (%"PRIu64")"
+                        " note a multiple of 1G; possible bad performance.",
+                        machine->ram_size, lowmem, pcms->max_ram_below_4g);
         }
     }