Subject: Re: [PATCH 2/2] Do not set shared_ports when nreq > MAX_MSIX

From: Matan Barak <[email-masked]>
Date: Wed, 7 Oct 2015 10:25:25 +0300

On 10/7/2015 12:46 AM, Carol Soto wrote:
>
>
> On 10/6/2015 4:39 PM, Or Gerlitz wrote:
>> On Wed, Oct 7, 2015 at 12:27 AM,  <[email-masked]> wrote:
>>> From: Carol L Soto <[email-masked]>
>>>
>>> If we get MAX_MSIX interrupts would like to have each receive ring
>>> with his own msix interrupt line.
>> so 9293267a3e2a  was only partially correct? and/or not fully optimal?
>> please elaborate more on that in your change log.
> just not fully optimal, with commit 9293267a3e2a if I have 64 MSIXs and
> 2 ports I can get 8 rings for each port but then the rings will share
> the interrupt lines. For 64 MSIXs we can have each ring with his own
> interrupt line.
>
>>> Fixes: 9293267a3e2a ('net/mlx4_core: Capping number of requested
>>> MSIXs to MAX_MSIX')
>>> Signed-off-by: Carol L Soto <[email-masked]>
>> Carol, you didn't use net/mlx4: prefix as ask for mlx4 driver patch
>> titles, so please repost, but before that I'd like to see an ack from
>> Matan for this patch as well.
> Sorry completely missed it. When Matan acks will resend it.

The logic seems correct to me. When there are more nreqs than we could 
possibly support (or want to support), there’s no reason to share the 
EQs between the different ports.
Thanks for your fix.

Regards,
Matan

>>
>> Or.
>>
>>> ---
>>>   drivers/net/ethernet/mellanox/mlx4/main.c | 4 +---
>>>   1 file changed, 1 insertion(+), 3 deletions(-)
>>>
>>> diff --git a/drivers/net/ethernet/mellanox/mlx4/main.c
>>> b/drivers/net/ethernet/mellanox/mlx4/main.c
>>> index 006757f..f03f513 100644
>>> --- a/drivers/net/ethernet/mellanox/mlx4/main.c
>>> +++ b/drivers/net/ethernet/mellanox/mlx4/main.c
>>> @@ -2673,10 +2673,8 @@ static void mlx4_enable_msi_x(struct mlx4_dev
>>> *dev)
>>>
>>>                  nreq = min_t(int, dev->caps.num_eqs -
>>> dev->caps.reserved_eqs,
>>>                               nreq);
>>> -               if (nreq > MAX_MSIX) {
>>> +               if (nreq > MAX_MSIX)
>>>                          nreq = MAX_MSIX;
>>> -                       shared_ports = true;
>>> -               }
>>>
>>>                  entries = kcalloc(nreq, sizeof *entries, GFP_KERNEL);
>>>                  if (!entries)
>>> --
>>> 1.8.3.1
>>>
>>> --
>>> To unsubscribe from this list: send the line "unsubscribe netdev" in
>>> the body of a message to [email-masked]
>>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>