net: enable timestamp static key if CPU
Subsystems (2)
PATCH 1/1 net: enable timestamp static key if CPU
For systems that use CPU isolation (via nohz_full), creating or destroying a socket with SO_TIMESTAMP, SO_TIMESTAMPNS or SO_TIMESTAMPING with flag SOF_TIMESTAMPING_RX_SOFTWARE will cause a static key to be enabled/disabled. This in turn causes undesired IPIs to isolated CPUs.
So enable the static key unconditionally, if CPU isolation is enabled, thus avoiding the IPIs.
---
v2: mention SOF_TIMESTAMPING_OPT_TX_SWHW in the commit log (Willem de Bruijn / Paolo Abeni)
v3: SOF_TIMESTAMPING_OPT_TX_SWHW is irrelevant (Willem de Bruijn)
v4: additional changelog improvements (Willem de Bruijn)
v5: late initcall not necessary, can use subsys initcall (Willem de Bruijn)
v6: rebase against net-next, change subject (Jakub Kicinski)
v7: change location of linux/sched #include (Jakub Kicinski)
net/core/dev.c +5 -0
@@ -78,6 +78,7 @@#include <linux/slab.h> #include <linux/sched.h> #include <linux/sched/mm.h> +#include <linux/sched/isolation.h> #include <linux/smpboot.h> #include <linux/mutex.h> #include <linux/rwsem.h>
@@ -11890,6 +11891,10 @@ static int __init net_dev_init(void) NULL, dev_cpu_dead);WARN_ON (rc <0 ); rc =0 ; + +/* avoid static key IPIs to isolated CPUs */ +if (housekeeping_enabled (HK_TYPE_MISC )) +net_enable_timestamp (); out:if (rc <0 ) {for_each_possible_cpu (i) {
This patch was applied to netdev/net-next.git (main) by Jakub Kicinski <[email protected]>:
Hello:
This patch was applied to netdev/net-next.git (main) by Jakub Kicinski <[email protected]>:
Quoted 9 lines · On Mon, 1 Apr 2024 12:36:40 -0300 you wrote:
For systems that use CPU isolation (via
nohz_full), creating or destroying a socket withSO_TIMESTAMP,SO_TIMESTAMPNSorSO_TIMESTAMPINGwith flagSOF_TIMESTAMPING_RX_SOFTWAREwill cause a static key to be enabled/disabled. This in turn causes undesired IPIs to isolated CPUs.So enable the static key unconditionally, if CPU isolation is enabled, thus avoiding the IPIs.
[...]
Here is the summary with links:
- [net-next,-v7] net: enable timestamp static key if CPU
https://git.kernel.org/netdev/net-next/c/2f3c7195a702
You are awesome, thank you!
Signature · 2 lines
Deet-doot-dot, I am a bot. https://korg.docs.kernel.org/patchwork/pwbot.html