Merge branch 'net-rps-rfs-improvements'
authorPaolo Abeni <pabeni@redhat.com>
Thu, 30 Mar 2023 11:40:04 +0000 (13:40 +0200)
committerPaolo Abeni <pabeni@redhat.com>
Thu, 30 Mar 2023 11:40:04 +0000 (13:40 +0200)
commit4ddd6375c3ef6756d492ea5466408cace097121b
tree955e0aa2919e1b114b1727e7fddd538c73b3c205
parent7079d5e61aaa14cd04fd2fe7a8a2b6eca7833fdb
parent8b43fd3d1d7d88293eb15e92090826e6b7cc13e4
Merge branch 'net-rps-rfs-improvements'

Eric Dumazet says:

====================
net: rps/rfs improvements

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.

[1] https://lore.kernel.org/lkml/20230325152417.5403-1-kerneljasonxing@gmail.com/
[2] https://lore.kernel.org/netdev/20230328142112.12493-1-kerneljasonxing@gmail.com/
====================

Link: https://lore.kernel.org/r/20230328235021.1048163-1-edumazet@google.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>