Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

net: replace percpu_xxx funcs with this_cpu_xxx or __this_cpu_xxx

percpu_xxx funcs are duplicated with this_cpu_xxx funcs, so replace
them for further code clean up.

And in preempt safe scenario, __this_cpu_xxx funcs may has a bit
better performance since __this_cpu_xxx has no redundant
preempt_enable/preempt_disable on some architectures.

Signed-off-by: Alex Shi <alex.shi@intel.com>
Acked-by: Eric Dumazet <eric.dumazet@gmail.com>
Acked-by: David S. Miller <davem@davemloft.net>
Cc: Patrick McHardy <kaber@trash.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Tejun Heo <tj@kernel.org>

authored by

Alex Shi and committed by
Tejun Heo
19e8d69c 9ff00d58

+8 -8
+6 -6
net/netfilter/xt_TEE.c
··· 87 87 const struct xt_tee_tginfo *info = par->targinfo; 88 88 struct iphdr *iph; 89 89 90 - if (percpu_read(tee_active)) 90 + if (__this_cpu_read(tee_active)) 91 91 return XT_CONTINUE; 92 92 /* 93 93 * Copy the skb, and route the copy. Will later return %XT_CONTINUE for ··· 124 124 ip_send_check(iph); 125 125 126 126 if (tee_tg_route4(skb, info)) { 127 - percpu_write(tee_active, true); 127 + __this_cpu_write(tee_active, true); 128 128 ip_local_out(skb); 129 - percpu_write(tee_active, false); 129 + __this_cpu_write(tee_active, false); 130 130 } else { 131 131 kfree_skb(skb); 132 132 } ··· 168 168 { 169 169 const struct xt_tee_tginfo *info = par->targinfo; 170 170 171 - if (percpu_read(tee_active)) 171 + if (__this_cpu_read(tee_active)) 172 172 return XT_CONTINUE; 173 173 skb = pskb_copy(skb, GFP_ATOMIC); 174 174 if (skb == NULL) ··· 186 186 --iph->hop_limit; 187 187 } 188 188 if (tee_tg_route6(skb, info)) { 189 - percpu_write(tee_active, true); 189 + __this_cpu_write(tee_active, true); 190 190 ip6_local_out(skb); 191 - percpu_write(tee_active, false); 191 + __this_cpu_write(tee_active, false); 192 192 } else { 193 193 kfree_skb(skb); 194 194 }
+2 -2
net/socket.c
··· 479 479 inode->i_uid = current_fsuid(); 480 480 inode->i_gid = current_fsgid(); 481 481 482 - percpu_add(sockets_in_use, 1); 482 + this_cpu_add(sockets_in_use, 1); 483 483 return sock; 484 484 } 485 485 ··· 522 522 if (rcu_dereference_protected(sock->wq, 1)->fasync_list) 523 523 printk(KERN_ERR "sock_release: fasync list not empty!\n"); 524 524 525 - percpu_sub(sockets_in_use, 1); 525 + this_cpu_sub(sockets_in_use, 1); 526 526 if (!sock->file) { 527 527 iput(SOCK_INODE(sock)); 528 528 return;