From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:44183) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WudcZ-0001fh-RQ for qemu-devel@nongnu.org; Wed, 11 Jun 2014 04:11:06 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WudcP-0004O2-Lf for qemu-devel@nongnu.org; Wed, 11 Jun 2014 04:10:59 -0400 Message-ID: <53980F07.7070708@suse.de> Date: Wed, 11 Jun 2014 10:10:47 +0200 From: Alexander Graf 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=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [Qemu-ppc] [PATCH] spapr_pci: Advertise MSI quota List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Alexey Kardashevskiy , qemu-devel@nongnu.org Cc: Badari Pulavarty , qemu-ppc@nongnu.org On 11.06.14 10:06, 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? > > > 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))); Also this value will get written with the wrong endianness on an LE host. Alexey, I'm not happy with you just forwarding random patches from people. It's on you to properly review them before you send them to the list if they go through your hands. Alex