On 06/11/2014 06:06 PM, Alexander Graf wrote: > > On 11.06.14 10:05, Alexey Kardashevskiy wrote: >> From: Badari Pulavarty <pbad...@us.ibm.com> >> >> Hotplug of multiple disks fails due to MSI vector quota check. >> Number of MSI vectors default to 8 allowing only 4 devices. >> This happens on RHEL6.5 guest. RHEL7 and SLES11 guests fallback >> to INTX. >> >> One way to workaround the issue is to increase total MSIs, >> so that MSI quota check allows us to hotplug multiple disks. >> >> Signed-off-by: Badari Pulavarty <pbad...@us.ibm.com> >> Signed-off-by: Alexey Kardashevskiy <a...@ozlabs.ru> >> --- >> hw/ppc/spapr_pci.c | 2 ++ >> 1 file changed, 2 insertions(+) >> >> diff --git a/hw/ppc/spapr_pci.c b/hw/ppc/spapr_pci.c >> index ddfd8bb..ebd92fd 100644 >> --- a/hw/ppc/spapr_pci.c >> +++ b/hw/ppc/spapr_pci.c >> @@ -831,6 +831,7 @@ int spapr_populate_pci_dt(sPAPRPHBState *phb, >> int bus_off, i, j; >> char nodename[256]; >> uint32_t bus_range[] = { cpu_to_be32(0), cpu_to_be32(0xff) }; >> + uint16_t nmsi = 64; > > Why 64?
Why not? :) We need some number here instead of default 8, that's pretty much it. 256? > > > Alex > >> struct { >> uint32_t hi; >> uint64_t child; >> @@ -879,6 +880,7 @@ int spapr_populate_pci_dt(sPAPRPHBState *phb, >> _FDT(fdt_setprop(fdt, bus_off, "ranges", &ranges, sizeof(ranges))); >> _FDT(fdt_setprop(fdt, bus_off, "reg", &bus_reg, sizeof(bus_reg))); >> _FDT(fdt_setprop_cell(fdt, bus_off, "ibm,pci-config-space-type", >> 0x1)); >> + _FDT(fdt_setprop(fdt, bus_off, "ibm,pe-total-#msi", &nmsi, >> sizeof(nmsi))); >> /* Build the interrupt-map, this must matches what is done >> * in pci_spapr_map_irq > -- Alexey