mirror of
https://github.com/torvalds/linux.git
synced 2024-11-23 12:42:02 +00:00
net: snmp: inline snmp_get_cpu_field()
This trivial function is called ~90,000 times on 256 cpus hosts, when reading /proc/net/netstat. And this number keeps inflating. Inlining it saves many cycles. Signed-off-by: Eric Dumazet <edumazet@google.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
dee3b2d0fa
commit
59f09ae8fa
@ -291,7 +291,11 @@ void ip_send_unicast_reply(struct sock *sk, struct sk_buff *skb,
|
||||
#define NET_ADD_STATS(net, field, adnd) SNMP_ADD_STATS((net)->mib.net_statistics, field, adnd)
|
||||
#define __NET_ADD_STATS(net, field, adnd) __SNMP_ADD_STATS((net)->mib.net_statistics, field, adnd)
|
||||
|
||||
u64 snmp_get_cpu_field(void __percpu *mib, int cpu, int offct);
|
||||
static inline u64 snmp_get_cpu_field(void __percpu *mib, int cpu, int offt)
|
||||
{
|
||||
return *(((unsigned long *)per_cpu_ptr(mib, cpu)) + offt);
|
||||
}
|
||||
|
||||
unsigned long snmp_fold_field(void __percpu *mib, int offt);
|
||||
#if BITS_PER_LONG==32
|
||||
u64 snmp_get_cpu_field64(void __percpu *mib, int cpu, int offct,
|
||||
|
@ -1662,12 +1662,6 @@ int inet_ctl_sock_create(struct sock **sk, unsigned short family,
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(inet_ctl_sock_create);
|
||||
|
||||
u64 snmp_get_cpu_field(void __percpu *mib, int cpu, int offt)
|
||||
{
|
||||
return *(((unsigned long *)per_cpu_ptr(mib, cpu)) + offt);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(snmp_get_cpu_field);
|
||||
|
||||
unsigned long snmp_fold_field(void __percpu *mib, int offt)
|
||||
{
|
||||
unsigned long res = 0;
|
||||
|
Loading…
Reference in New Issue
Block a user