[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-ppc] [PATCH 01/27] spapr: ensure we have at least one XICS server
From: |
David Gibson |
Subject: |
[Qemu-ppc] [PATCH 01/27] spapr: ensure we have at least one XICS server |
Date: |
Thu, 2 Jul 2015 16:23:02 +1000 |
From: Greg Kurz <address@hidden>
XICS needs to know the upper value for cpu_index as it is used to compute
the number of servers:
smp_cpus * kvmppc_smt_threads() / smp_threads
When passing -smp cpus=1,threads=9 on a POWER8 host, we end up with:
1 * 8 / 9 = 0
... which leads to an assertion in both emulated:
Number of servers needs to be greater 0
Aborted (core dumped)
... and in-kernel XICS:
xics_kvm_realize: Assertion `icp->nr_servers' failed.
Aborted (core dumped)
With this patch, we are sure that nr_servers > 0. Passing the same bogus
-smp option then leads to:
qemu-system-ppc64: Cannot support more than 8 threads on PPC with KVM
... which is a lot more explicit than the XICS errors.
Signed-off-by: Greg Kurz <address@hidden>
Signed-off-by: David Gibson <address@hidden>
---
hw/ppc/spapr.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
index f174e5a..10ca866 100644
--- a/hw/ppc/spapr.c
+++ b/hw/ppc/spapr.c
@@ -1467,7 +1467,8 @@ static void ppc_spapr_init(MachineState *machine)
/* Set up Interrupt Controller before we create the VCPUs */
spapr->icp = xics_system_init(machine,
- smp_cpus * kvmppc_smt_threads() /
smp_threads,
+ DIV_ROUND_UP(smp_cpus * kvmppc_smt_threads(),
+ smp_threads),
XICS_IRQS);
/* init CPUs */
--
2.4.3
- [Qemu-ppc] [PATCH 18/27] ppc: Update cpu_model in MachineState, (continued)
- [Qemu-ppc] [PATCH 18/27] ppc: Update cpu_model in MachineState, David Gibson, 2015/07/02
- [Qemu-ppc] [PATCH 21/27] spapr_pci: populate ibm,loc-code, David Gibson, 2015/07/02
- [Qemu-ppc] [PATCH 14/27] spapr: Support ibm, lrdr-capacity device tree property, David Gibson, 2015/07/02
- [Qemu-ppc] [PATCH 20/27] spapr_pci: enumerate and add PCI device tree, David Gibson, 2015/07/02
- [Qemu-ppc] [PATCH 27/27] sPAPR: Clear stale MSIx table during EEH reset, David Gibson, 2015/07/02
- [Qemu-ppc] [PATCH 16/27] spapr: Reorganize CPU dt generation code, David Gibson, 2015/07/02
- [Qemu-ppc] [PATCH 26/27] sPAPR: Reenable EEH functionality on reboot, David Gibson, 2015/07/02
- [Qemu-ppc] [PATCH 03/27] spapr: Merge sPAPREnvironment into sPAPRMachineState, David Gibson, 2015/07/02
- [Qemu-ppc] [PATCH 02/27] pseries: Update SLOF firmware image to qemu-slof-20150429, David Gibson, 2015/07/02
- [Qemu-ppc] [PATCH 00/27] sPAPR updates 2015-07-02, David Gibson, 2015/07/02
- [Qemu-ppc] [PATCH 01/27] spapr: ensure we have at least one XICS server,
David Gibson <=
- [Qemu-ppc] [PATCH 07/27] spapr_pci: encode missing 64-bit memory address space, David Gibson, 2015/07/02
- [Qemu-ppc] [PATCH 04/27] spapr: Remove obsolete ram_limit field from sPAPRMachineState, David Gibson, 2015/07/02
- [Qemu-ppc] [PATCH 06/27] spapr: Add sPAPRMachineClass, David Gibson, 2015/07/02
- [Qemu-ppc] [PATCH 09/27] spapr_pci: set device node unit address as hex, David Gibson, 2015/07/02
- [Qemu-ppc] [PATCH 26/27] sPAPR: Reenable EEH functionality on reboot, David Gibson, 2015/07/02
- [Qemu-ppc] [PATCH 25/27] sPAPR: Don't enable EEH on emulated PCI devices, David Gibson, 2015/07/02
- [Qemu-ppc] [PATCH 17/27] spapr: Consolidate cpu init code into a routine, David Gibson, 2015/07/02
- [Qemu-ppc] [PATCH 13/27] spapr: Consider max_cpus during xics initialization, David Gibson, 2015/07/02
- [Qemu-ppc] [PATCH 12/27] Revert "hw/ppc/spapr_pci.c: Avoid functions not in glib 2.12 (g_hash_table_iter_*)", David Gibson, 2015/07/02
- [Qemu-ppc] [PATCH 23/27] spapr_vty: lookup should only return valid VTY objects, David Gibson, 2015/07/02