qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH] spapr_pci: Advertise MSI quota
@ 2014-06-11  8:05 Alexey Kardashevskiy
  2014-06-11  8:06 ` Alexander Graf
  0 siblings, 1 reply; 5+ messages in thread
From: Alexey Kardashevskiy @ 2014-06-11  8:05 UTC (permalink / raw)
  To: qemu-devel
  Cc: Alexey Kardashevskiy, qemu-ppc, Badari Pulavarty, Alexander Graf

From: Badari Pulavarty <pbadari@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 <pbadari@us.ibm.com>
Signed-off-by: Alexey Kardashevskiy <aik@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;
     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
-- 
2.0.0

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [Qemu-devel] [PATCH] spapr_pci: Advertise MSI quota
  2014-06-11  8:05 [Qemu-devel] [PATCH] spapr_pci: Advertise MSI quota Alexey Kardashevskiy
@ 2014-06-11  8:06 ` Alexander Graf
  2014-06-11  8:10   ` [Qemu-devel] [Qemu-ppc] " Alexander Graf
  2014-06-11  8:18   ` [Qemu-devel] " Alexey Kardashevskiy
  0 siblings, 2 replies; 5+ messages in thread
From: Alexander Graf @ 2014-06-11  8:06 UTC (permalink / raw)
  To: Alexey Kardashevskiy, qemu-devel; +Cc: qemu-ppc, Badari Pulavarty


On 11.06.14 10:05, Alexey Kardashevskiy wrote:
> From: Badari Pulavarty <pbadari@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 <pbadari@us.ibm.com>
> Signed-off-by: Alexey Kardashevskiy <aik@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?


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

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [Qemu-devel] [Qemu-ppc] [PATCH] spapr_pci: Advertise MSI quota
  2014-06-11  8:06 ` Alexander Graf
@ 2014-06-11  8:10   ` Alexander Graf
  2014-06-11  8:18   ` [Qemu-devel] " Alexey Kardashevskiy
  1 sibling, 0 replies; 5+ messages in thread
From: Alexander Graf @ 2014-06-11  8:10 UTC (permalink / raw)
  To: Alexey Kardashevskiy, qemu-devel; +Cc: Badari Pulavarty, qemu-ppc


On 11.06.14 10:06, Alexander Graf wrote:
>
> On 11.06.14 10:05, Alexey Kardashevskiy wrote:
>> From: Badari Pulavarty <pbadari@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 <pbadari@us.ibm.com>
>> Signed-off-by: Alexey Kardashevskiy <aik@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?
>
>
> 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

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [Qemu-devel] [PATCH] spapr_pci: Advertise MSI quota
  2014-06-11  8:06 ` Alexander Graf
  2014-06-11  8:10   ` [Qemu-devel] [Qemu-ppc] " Alexander Graf
@ 2014-06-11  8:18   ` Alexey Kardashevskiy
  2014-06-11  8:19     ` Alexander Graf
  1 sibling, 1 reply; 5+ messages in thread
From: Alexey Kardashevskiy @ 2014-06-11  8:18 UTC (permalink / raw)
  To: Alexander Graf, qemu-devel; +Cc: qemu-ppc, Badari Pulavarty

On 06/11/2014 06:06 PM, Alexander Graf wrote:
> 
> On 11.06.14 10:05, Alexey Kardashevskiy wrote:
>> From: Badari Pulavarty <pbadari@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 <pbadari@us.ibm.com>
>> Signed-off-by: Alexey Kardashevskiy <aik@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

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [Qemu-devel] [PATCH] spapr_pci: Advertise MSI quota
  2014-06-11  8:18   ` [Qemu-devel] " Alexey Kardashevskiy
@ 2014-06-11  8:19     ` Alexander Graf
  0 siblings, 0 replies; 5+ messages in thread
From: Alexander Graf @ 2014-06-11  8:19 UTC (permalink / raw)
  To: Alexey Kardashevskiy, qemu-devel; +Cc: qemu-ppc, Badari Pulavarty


On 11.06.14 10:18, Alexey Kardashevskiy wrote:
> On 06/11/2014 06:06 PM, Alexander Graf wrote:
>> On 11.06.14 10:05, Alexey Kardashevskiy wrote:
>>> From: Badari Pulavarty <pbadari@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 <pbadari@us.ibm.com>
>>> Signed-off-by: Alexey Kardashevskiy <aik@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?

How is 64 any better than 8? How many MSIs can we support? Can't we just 
put that number in? If it's more than 64k, just put in 64k?


Alex

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2014-06-11  8:20 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-06-11  8:05 [Qemu-devel] [PATCH] spapr_pci: Advertise MSI quota Alexey Kardashevskiy
2014-06-11  8:06 ` Alexander Graf
2014-06-11  8:10   ` [Qemu-devel] [Qemu-ppc] " Alexander Graf
2014-06-11  8:18   ` [Qemu-devel] " Alexey Kardashevskiy
2014-06-11  8:19     ` Alexander Graf

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).