From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:47075) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Wudk8-0005Cf-Ut for qemu-devel@nongnu.org; Wed, 11 Jun 2014 04:18:55 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Wudk1-0007IW-NL for qemu-devel@nongnu.org; Wed, 11 Jun 2014 04:18:48 -0400 Received: from mail-pb0-f50.google.com ([209.85.160.50]:47197) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Wudk1-0007IJ-Gj for qemu-devel@nongnu.org; Wed, 11 Jun 2014 04:18:41 -0400 Received: by mail-pb0-f50.google.com with SMTP id rp16so1765972pbb.9 for ; Wed, 11 Jun 2014 01:18:40 -0700 (PDT) Message-ID: <539810D8.1080406@ozlabs.ru> Date: Wed, 11 Jun 2014 18:18:32 +1000 From: Alexey Kardashevskiy MIME-Version: 1.0 References: <1402473920-4763-1-git-send-email-aik@ozlabs.ru> <53980E15.2070003@suse.de> In-Reply-To: <53980E15.2070003@suse.de> Content-Type: text/plain; charset=KOI8-R Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH] spapr_pci: Advertise MSI quota List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Alexander Graf , qemu-devel@nongnu.org Cc: qemu-ppc@nongnu.org, Badari Pulavarty On 06/11/2014 06:06 PM, Alexander Graf wrote: > > On 11.06.14 10:05, Alexey Kardashevskiy wrote: >> From: Badari Pulavarty >> >> 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 >> Signed-off-by: Alexey Kardashevskiy >> --- >> 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