Message ID | 20240412030718.68016-1-kerneljasonxing@gmail.com (mailing list archive) |
---|---|
State | Accepted |
Commit | 4d0470b9ad73e965f5a1e52f1deb0edbb6d03c89 |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [net-next,v2] net: save some cycles when doing skb_attempt_defer_free() | expand |
Hello: This patch was applied to netdev/net-next.git (main) by David S. Miller <davem@davemloft.net>: On Fri, 12 Apr 2024 11:07:18 +0800 you wrote: > From: Jason Xing <kernelxing@tencent.com> > > Normally, we don't face these two exceptions very often meanwhile > we have some chance to meet the condition where the current cpu id > is the same as skb->alloc_cpu. > > One simple test that can help us see the frequency of this statement > 'cpu == raw_smp_processor_id()': > 1. running iperf -s and iperf -c [ip] -P [MAX CPU] > 2. using BPF to capture skb_attempt_defer_free() > > [...] Here is the summary with links: - [net-next,v2] net: save some cycles when doing skb_attempt_defer_free() https://git.kernel.org/netdev/net-next/c/4d0470b9ad73 You are awesome, thank you!
diff --git a/net/core/skbuff.c b/net/core/skbuff.c index ab970ded8a7b..6dc577a3ea6a 100644 --- a/net/core/skbuff.c +++ b/net/core/skbuff.c @@ -7002,9 +7002,9 @@ void skb_attempt_defer_free(struct sk_buff *skb) unsigned int defer_max; bool kick; - if (WARN_ON_ONCE(cpu >= nr_cpu_ids) || - !cpu_online(cpu) || - cpu == raw_smp_processor_id()) { + if (cpu == raw_smp_processor_id() || + WARN_ON_ONCE(cpu >= nr_cpu_ids) || + !cpu_online(cpu)) { nodefer: kfree_skb_napi_cache(skb); return; }