]> git.baikalelectronics.ru Git - kernel.git/commit
[INET]: Uninline the __inet_hash function.
authorPavel Emelyanov <xemul@openvz.org>
Thu, 20 Dec 2007 23:31:33 +0000 (15:31 -0800)
committerDavid S. Miller <davem@davemloft.net>
Mon, 28 Jan 2008 22:59:26 +0000 (14:59 -0800)
commit7ac1a41aa0880a32592de0a79242e78319d5303c
tree63db8e49be92e7f23667d8c3356177840287118f
parent1911ea62c7d19dc9dbcfa6a51463bac0559a81fd
[INET]: Uninline the __inet_hash function.

This one is used in quite many places in the networking code and
seems to big to be inline.

After the patch net/ipv4/build-in.o loses ~650 bytes:
add/remove: 2/0 grow/shrink: 0/5 up/down: 461/-1114 (-653)
function                                     old     new   delta
__inet_hash_nolisten                           -     282    +282
__inet_hash                                    -     179    +179
tcp_sacktag_write_queue                     2255    2254      -1
__inet_lookup_listener                       284     274     -10
tcp_v4_syn_recv_sock                         755     493    -262
tcp_v4_hash                                  389      35    -354
inet_hash_connect                           1086     599    -487

This version addresses the issue pointed by Eric, that
while being inline this function was optimized by gcc
in respect to the 'listen_possible' argument.

Signed-off-by: Pavel Emelyanov <xemul@openvz.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/inet_hashtables.h
net/dccp/ipv4.c
net/ipv4/inet_hashtables.c
net/ipv4/tcp_ipv4.c