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 /include | |
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 'include')
-rw-r--r-- | include/net/sock.h | 2 | ||||
-rw-r--r-- | include/net/tcp.h | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/include/net/sock.h b/include/net/sock.h index a2a3890959c4..5a3a151bd730 100644 --- a/include/net/sock.h +++ b/include/net/sock.h | |||
@@ -666,7 +666,7 @@ struct proto { | |||
666 | unsigned int obj_size; | 666 | unsigned int obj_size; |
667 | int slab_flags; | 667 | int slab_flags; |
668 | 668 | ||
669 | atomic_t *orphan_count; | 669 | struct percpu_counter *orphan_count; |
670 | 670 | ||
671 | struct request_sock_ops *rsk_prot; | 671 | struct request_sock_ops *rsk_prot; |
672 | struct timewait_sock_ops *twsk_prot; | 672 | struct timewait_sock_ops *twsk_prot; |
diff --git a/include/net/tcp.h b/include/net/tcp.h index cbca3b8a133d..de1e91d959b8 100644 --- a/include/net/tcp.h +++ b/include/net/tcp.h | |||
@@ -46,7 +46,7 @@ | |||
46 | 46 | ||
47 | extern struct inet_hashinfo tcp_hashinfo; | 47 | extern struct inet_hashinfo tcp_hashinfo; |
48 | 48 | ||
49 | extern atomic_t tcp_orphan_count; | 49 | extern struct percpu_counter tcp_orphan_count; |
50 | extern void tcp_time_wait(struct sock *sk, int state, int timeo); | 50 | extern void tcp_time_wait(struct sock *sk, int state, int timeo); |
51 | 51 | ||
52 | #define MAX_TCP_HEADER (128 + MAX_HEADER) | 52 | #define MAX_TCP_HEADER (128 + MAX_HEADER) |