[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAL+tcoDTQzCm0nh6oLB8w9+YPXeL2_Rk+bwBWECgUA_amMfwGw@mail.gmail.com>
Date: Wed, 29 Mar 2023 10:40:37 +0800
From: Jason Xing <kerneljasonxing@...il.com>
To: Eric Dumazet <edumazet@...gle.com>
Cc: "David S . Miller" <davem@...emloft.net>,
Jakub Kicinski <kuba@...nel.org>,
Paolo Abeni <pabeni@...hat.com>,
Jason Xing <kernelxing@...cent.com>, netdev@...r.kernel.org,
eric.dumazet@...il.com
Subject: Re: [PATCH net-next 0/4] net: rps/rfs improvements
On Wed, Mar 29, 2023 at 7:53 AM Eric Dumazet <edumazet@...gle.com> wrote:
>
> Jason Xing attempted to optimize napi_schedule_rps() by avoiding
> unneeded NET_RX_SOFTIRQ raises: [1], [2]
>
> This is quite complex to implement properly. I chose to implement
> the idea, and added a similar optimization in ____napi_schedule()
>
[...]
> Overall, in an intensive RPC workload, with 32 TX/RX queues with RFS
> I was able to observe a ~10% reduction of NET_RX_SOFTIRQ
> invocations.
>
> While this had no impact on throughput or cpu costs on this synthetic
> benchmark, we know that firing NET_RX_SOFTIRQ from softirq handler
> can force __do_softirq() to wakeup ksoftirqd when need_resched() is true.
> This can have a latency impact on stressed hosts.
Eric, nice work ! You got these numbers.
Could you also put this whole important description above into the 3/4
patch? I believe it is very useful information if any
readers/developers try to track this part through git blame. After
all, I spent a lot of time discovering this point. Thanks.
Otherwise it looks good to me. Please add:
Reviewed-by: Jason Xing <kerneljasonxing@...il.com>
And I've done tests on this patchset. Please also add:
Tested-by: Jason Xing <kerneljasonxing@...il.com>
Thanks!
>
> [1] https://lore.kernel.org/lkml/20230325152417.5403-1-kerneljasonxing@gmail.com/
> [2] https://lore.kernel.org/netdev/20230328142112.12493-1-kerneljasonxing@gmail.com/
>
>
> Eric Dumazet (4):
> net: napi_schedule_rps() cleanup
> net: add softnet_data.in_net_rx_action
> net: optimize napi_schedule_rps()
> net: optimize ____napi_schedule() to avoid extra NET_RX_SOFTIRQ
>
> include/linux/netdevice.h | 1 +
> net/core/dev.c | 46 ++++++++++++++++++++++++++++++---------
> 2 files changed, 37 insertions(+), 10 deletions(-)
>
> --
> 2.40.0.348.gf938b09366-goog
>
Powered by blists - more mailing lists