diff options
author | Eric Dumazet <dada1@cosmosbay.com> | 2008-11-26 00:17:14 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-11-26 00:17:14 -0500 |
commit | dd24c00191d5e4a1ae896aafe33c6b8095ab4bd1 (patch) | |
tree | e955c09e0b288e50c706b6ee409229d5a930c80c /net/ipv4/tcp_timer.c | |
parent | 1748376b6626acf59c24e9592ac67b3fe2a0e026 (diff) |
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/tcp_timer.c')
-rw-r--r-- | net/ipv4/tcp_timer.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/net/ipv4/tcp_timer.c b/net/ipv4/tcp_timer.c index 3df339e3e363..cc4e6d27dedc 100644 --- a/net/ipv4/tcp_timer.c +++ b/net/ipv4/tcp_timer.c | |||
@@ -65,7 +65,7 @@ static void tcp_write_err(struct sock *sk) | |||
65 | static int tcp_out_of_resources(struct sock *sk, int do_reset) | 65 | static int tcp_out_of_resources(struct sock *sk, int do_reset) |
66 | { | 66 | { |
67 | struct tcp_sock *tp = tcp_sk(sk); | 67 | struct tcp_sock *tp = tcp_sk(sk); |
68 | int orphans = atomic_read(&tcp_orphan_count); | 68 | int orphans = percpu_counter_read_positive(&tcp_orphan_count); |
69 | 69 | ||
70 | /* If peer does not open window for long time, or did not transmit | 70 | /* If peer does not open window for long time, or did not transmit |
71 | * anything for long time, penalize it. */ | 71 | * anything for long time, penalize it. */ |