mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-27 12:57:53 +00:00
net: save some cycles when doing skb_attempt_defer_free()
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() I can see around 4% chance that happens to satisfy the statement. So moving this statement at the beginning can save some cycles in most cases. Signed-off-by: Jason Xing <kernelxing@tencent.com> Reviewed-by: Alexander Lobakin <aleksander.lobakin@intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
71329c4918
commit
4d0470b9ad
1 changed files with 3 additions and 3 deletions
|
@ -6965,9 +6965,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;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue