2015-12-21 03:19:08

by majun (Euler7)

[permalink] [raw]
Subject: [PATCH] IRQ/Platform-MSI:Increase the maximum MSIs the MSI framework can support.

From: Ma Jun <[email protected]>

The current MSI framework can only support 256 platform MSIs.

But on Hisilicon platform, some network related devices has about 500
wired interrupts.

To support these devices, we need a new maximum value more than 256.

Signed-off-by: Ma Jun <[email protected]>
---
drivers/base/platform-msi.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/base/platform-msi.c b/drivers/base/platform-msi.c
index a203896..9c00d3f 100644
--- a/drivers/base/platform-msi.c
+++ b/drivers/base/platform-msi.c
@@ -24,7 +24,7 @@
#include <linux/msi.h>
#include <linux/slab.h>

-#define DEV_ID_SHIFT 24
+#define DEV_ID_SHIFT 22
#define MAX_DEV_MSIS (1 << (32 - DEV_ID_SHIFT))

/*
--
1.7.1


2015-12-21 10:37:50

by Marc Zyngier

[permalink] [raw]
Subject: Re: [PATCH] IRQ/Platform-MSI:Increase the maximum MSIs the MSI framework can support.

On Mon, 21 Dec 2015 11:18:25 +0800
MaJun <[email protected]> wrote:

> From: Ma Jun <[email protected]>
>
> The current MSI framework can only support 256 platform MSIs.
>
> But on Hisilicon platform, some network related devices has about 500
> wired interrupts.
>
> To support these devices, we need a new maximum value more than 256.
>
> Signed-off-by: Ma Jun <[email protected]>
> ---
> drivers/base/platform-msi.c | 2 +-
> 1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/drivers/base/platform-msi.c b/drivers/base/platform-msi.c
> index a203896..9c00d3f 100644
> --- a/drivers/base/platform-msi.c
> +++ b/drivers/base/platform-msi.c
> @@ -24,7 +24,7 @@
> #include <linux/msi.h>
> #include <linux/slab.h>
>
> -#define DEV_ID_SHIFT 24
> +#define DEV_ID_SHIFT 22
> #define MAX_DEV_MSIS (1 << (32 - DEV_ID_SHIFT))
>
> /*

If we bother doing that, why not directly aligning it with MSI-X and
allow up to 2048 interrupts per device? It is only an extra bit, and
that still leaves 21 bits worth of device IDs, while still having
hwirq as an unsigned long (32bit on 32bit architectures).

Thanks,

M.

--
Without deviation from the norm, progress is not possible.

2015-12-22 02:48:53

by majun (Euler7)

[permalink] [raw]
Subject: Re: [PATCH] IRQ/Platform-MSI:Increase the maximum MSIs the MSI framework can support.



在 2015/12/21 18:43, Marc Zyngier 写道:
> On Mon, 21 Dec 2015 11:18:25 +0800
> MaJun <[email protected]> wrote:
>
>> From: Ma Jun <[email protected]>
>>
>> The current MSI framework can only support 256 platform MSIs.
>>
>> But on Hisilicon platform, some network related devices has about 500
>> wired interrupts.
>>
>> To support these devices, we need a new maximum value more than 256.
>>
>> Signed-off-by: Ma Jun <[email protected]>
>> ---
>> drivers/base/platform-msi.c | 2 +-
>> 1 files changed, 1 insertions(+), 1 deletions(-)
>>
>> diff --git a/drivers/base/platform-msi.c b/drivers/base/platform-msi.c
>> index a203896..9c00d3f 100644
>> --- a/drivers/base/platform-msi.c
>> +++ b/drivers/base/platform-msi.c
>> @@ -24,7 +24,7 @@
>> #include <linux/msi.h>
>> #include <linux/slab.h>
>>
>> -#define DEV_ID_SHIFT 24
>> +#define DEV_ID_SHIFT 22
>> #define MAX_DEV_MSIS (1 << (32 - DEV_ID_SHIFT))
>>
>> /*
>
> If we bother doing that, why not directly aligning it with MSI-X and
> allow up to 2048 interrupts per device? It is only an extra bit, and
> that still leaves 21 bits worth of device IDs, while still having
> hwirq as an unsigned long (32bit on 32bit architectures).
>

Ok, I'll changed this value to 2048

Thanks
Ma Jun
> Thanks,
>
> M.
>