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

From: Matan Barak <[email-masked]>
Date: Wed, 7 Oct 2015 11:08:40 +0300

On 10/7/2015 10:25 AM, Matan Barak wrote:
>
>
> 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.
>

Please also clean the shared_ports variable - we don't need this anymore.

> 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
>>