netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Horatiu Vultur <horatiu.vultur@microchip.com>
To: Eric Dumazet <edumazet@google.com>
Cc: <netdev@vger.kernel.org>
Subject: Re: Performance regression on lan966x when extracting frames
Date: Tue, 16 May 2023 09:45:33 +0200	[thread overview]
Message-ID: <20230516074533.t5pwat6ld5qqk5ak@soft-dev3-1> (raw)
In-Reply-To: <CANn89iLDtbQTQEdOgkisHZ28O+cdXKBSKrwubHagA7iVUmKXBg@mail.gmail.com>

The 05/15/2023 14:30, Eric Dumazet wrote:
> 
> On Mon, May 15, 2023 at 11:12 AM Horatiu Vultur
> <horatiu.vultur@microchip.com> wrote:

Hi Eric,

Thanks for looking at this.

> >
> > Hi,
> >
> > I have noticed that on the HEAD of net-next[0] there is a performance drop
> > for lan966x when extracting frames towards the CPU. Lan966x has a Cortex
> > A7 CPU. All the tests are done using iperf3 command like this:
> > 'iperf3 -c 10.97.10.1 -R'
> >
> > So on net-next, I can see the following:
> > [  5]   0.00-10.01  sec   473 MBytes   396 Mbits/sec  456 sender
> > And it gets around ~97000 interrupts.
> >
> > While going back to the commit[1], I can see the following:
> > [  5]   0.00-10.02  sec   632 MBytes   529 Mbits/sec   11 sender
> > And it gets around ~1000 interrupts.
> >
> > I have done a little bit of searching and I have noticed that this
> > commit [2] introduce the regression.
> > I have tried to revert this commit on net-next and tried again, then I
> > can see much better results but not exactly the same:
> > [  5]   0.00-10.01  sec   616 MBytes   516 Mbits/sec    0 sender
> > And it gets around ~700 interrupts.
> >
> > So my question is, was I supposed to change something in lan966x driver?
> > or is there a bug in lan966x driver that pop up because of this change?
> >
> > Any advice will be great. Thanks!
> >
> > [0] befcc1fce564 ("sfc: fix use-after-free in efx_tc_flower_record_encap_match()")
> > [1] d4671cb96fa3 ("Merge branch 'lan966x-tx-rx-improve'")
> > [2] 8b43fd3d1d7d ("net: optimize ____napi_schedule() to avoid extra NET_RX_SOFTIRQ")
> >
> >
> 
> Hmmm... thanks for the report.
> 
> This seems related to softirq (k)scheduling.
> 
> Have you tried to apply this recent commit ?
> 
> Commit-ID:     d15121be7485655129101f3960ae6add40204463
> Gitweb:        https://git.kernel.org/tip/d15121be7485655129101f3960ae6add40204463
> Author:        Paolo Abeni <pabeni@redhat.com>
> AuthorDate:    Mon, 08 May 2023 08:17:44 +02:00
> Committer:     Thomas Gleixner <tglx@linutronix.de>
> CommitterDate: Tue, 09 May 2023 21:50:27 +02:00
> 
> Revert "softirq: Let ksoftirqd do its job"

I have tried to apply this patch but the results are the same:
[  5]   0.00-10.01  sec   478 MBytes   400 Mbits/sec  188 sender
And it gets just a little bit bigger number of interrupts ~11000

> 
> 
> Alternative would be to try this :
> 
> diff --git a/net/core/dev.c b/net/core/dev.c
> index b3c13e0419356b943e90b1f46dd7e035c6ec1a9c..f570a3ca00e7aa0e605178715f90bae17b86f071
> 100644
> --- a/net/core/dev.c
> +++ b/net/core/dev.c
> @@ -6713,8 +6713,8 @@ static __latent_entropy void
> net_rx_action(struct softirq_action *h)
>         list_splice(&list, &sd->poll_list);
>         if (!list_empty(&sd->poll_list))
>                 __raise_softirq_irqoff(NET_RX_SOFTIRQ);
> -       else
> -               sd->in_net_rx_action = false;
> +
> +       sd->in_net_rx_action = false;
> 
>         net_rps_action_and_irq_enable(sd);
>  end:;

I have tried to use also this change with and without the previous patch
but the result is the same:
[  5]   0.00-10.01  sec   478 MBytes   401 Mbits/sec  256 sender
And it is the same number of interrupts.

Is something else that I should try?

-- 
/Horatiu

  reply	other threads:[~2023-05-16  7:45 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-05-15  9:12 Performance regression on lan966x when extracting frames Horatiu Vultur
2023-05-15 12:30 ` Eric Dumazet
2023-05-16  7:45   ` Horatiu Vultur [this message]
2023-05-16  8:04     ` Eric Dumazet
2023-05-16  9:27       ` Horatiu Vultur
2023-05-16  9:59         ` Eric Dumazet
2023-05-16 10:17           ` Eric Dumazet
2023-05-16 10:16         ` Paolo Abeni
2023-05-16 14:11           ` Horatiu Vultur
2023-05-16 14:32             ` Paolo Abeni

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20230516074533.t5pwat6ld5qqk5ak@soft-dev3-1 \
    --to=horatiu.vultur@microchip.com \
    --cc=edumazet@google.com \
    --cc=netdev@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).