[NET]: Keep sk_backlog near sk_lock
authorEric Dumazet <dada1@cosmosbay.com>
Mon, 5 Mar 2007 00:05:44 +0000 (16:05 -0800)
committerDavid S. Miller <davem@sunset.davemloft.net>
Thu, 26 Apr 2007 05:23:27 +0000 (22:23 -0700)
commitfa438ccfdfd3f6db02c13b61b21454eb81cd6a13
treea1759259d7543586185e2fb9db21461147944f18
parente317f6f69cb95527799d308a9421b7dc1252989a
[NET]: Keep sk_backlog near sk_lock

sk_backlog is a critical field of struct sock. (known famous words)

It is (ab)used in hot paths, in particular in release_sock(), tcp_recvmsg(),
tcp_v4_rcv(), sk_receive_skb().

It really makes sense to place it next to sk_lock, because sk_backlog is only
used after sk_lock locked (and thus memory cache line in L1 cache). This
should reduce cache misses and sk_lock acquisition time.

(In theory, we could only move the head pointer near sk_lock, and leaving tail
far away, because 'tail' is normally not so hot, but keep it simple :) )

Signed-off-by: Eric Dumazet <dada1@cosmosbay.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/sock.h
net/core/sock.c