diff options
author | Eric Dumazet <dada1@cosmosbay.com> | 2008-11-25 21:17:14 -0800 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-11-25 21:17:14 -0800 |
commit | dd24c00191d5e4a1ae896aafe33c6b8095ab4bd1 (patch) | |
tree | e955c09e0b288e50c706b6ee409229d5a930c80c /net/ipv4/proc.c | |
parent | 1748376b6626acf59c24e9592ac67b3fe2a0e026 (diff) | |
download | op-kernel-dev-dd24c00191d5e4a1ae896aafe33c6b8095ab4bd1.zip op-kernel-dev-dd24c00191d5e4a1ae896aafe33c6b8095ab4bd1.tar.gz |
net: Use a percpu_counter for orphan_count
Instead of using one atomic_t per protocol, use a percpu_counter
for "orphan_count", to reduce cache line contention on
heavy duty network servers.
Signed-off-by: Eric Dumazet <dada1@cosmosbay.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4/proc.c')
-rw-r--r-- | net/ipv4/proc.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/net/ipv4/proc.c b/net/ipv4/proc.c index 4944b47..614958b 100644 --- a/net/ipv4/proc.c +++ b/net/ipv4/proc.c @@ -54,7 +54,7 @@ static int sockstat_seq_show(struct seq_file *seq, void *v) socket_seq_show(seq); seq_printf(seq, "TCP: inuse %d orphan %d tw %d alloc %d mem %d\n", sock_prot_inuse_get(net, &tcp_prot), - atomic_read(&tcp_orphan_count), + (int)percpu_counter_sum_positive(&tcp_orphan_count), tcp_death_row.tw_count, (int)percpu_counter_sum_positive(&tcp_sockets_allocated), atomic_read(&tcp_memory_allocated)); |