Remove the "apic initialization failed" prefix (it conveys no useful information), replace "invalid" with "too large", and add an error hint with two possible solutions for the problem.
Before: $ qemu-system-x86_64 -machine q35 -smp 256 qemu-system-x86_64: apic initialization failed. APIC ID 255 is invalid After: $ qemu-system-x86_64 -machine q35 -smp 256 -display none qemu-system-x86_64: APIC ID 255 is too large Possible solutions: * Lowering the number of VCPUs on the -smp option * Using accel=kvm,kernel-irqchip=on or accel=kvm,kernel-irqchip=split Signed-off-by: Eduardo Habkost <ehabk...@redhat.com> --- I'm not sure this is the best way to provide usage hints to the user. Any suggestions? --- hw/intc/apic.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/hw/intc/apic.c b/hw/intc/apic.c index 97ffdd820f..f08006334d 100644 --- a/hw/intc/apic.c +++ b/hw/intc/apic.c @@ -886,8 +886,11 @@ static void apic_realize(DeviceState *dev, Error **errp) APICCommonState *s = APIC(dev); if (s->id >= MAX_APICS) { - error_setg(errp, "%s initialization failed. APIC ID %d is invalid", - object_get_typename(OBJECT(dev)), s->id); + error_setg(errp, "APIC ID %d is too large", s->id); + error_append_hint(errp, + "Possible solutions:\n" + "* Lowering the number of VCPUs on the -smp option\n" + "* Using accel=kvm,kernel-irqchip=on or accel=kvm,kernel-irqchip=split\n"); return; } -- 2.18.0.rc1.1.g3f1ff2140