ipv4: Introduce IN_DEV_NET_ROUTE_LOCALNET
authorEric Dumazet <edumazet@google.com>
Fri, 3 Aug 2012 21:27:25 +0000 (21:27 +0000)
committerDavid S. Miller <davem@davemloft.net>
Sat, 4 Aug 2012 08:27:57 +0000 (01:27 -0700)
commit9eb43e765368f835d92c93844ebce30da7efeb84
treec8ae2176f95886fafd8e70e7c32f2aa6257ca73d
parent40384999d142552b81aeb596c2ae663dd3ff60ce
ipv4: Introduce IN_DEV_NET_ROUTE_LOCALNET

performance profiles show a high cost in the IN_DEV_ROUTE_LOCALNET()
call done in ip_route_input_slow(), because of multiple dereferences,
even if cache lines are clean and available in cpu caches.

Since we already have the 'net' pointer, introduce
IN_DEV_NET_ROUTE_LOCALNET() macro avoiding two dereferences
(dev_net(in_dev->dev))

Also change the tests to use IN_DEV_NET_ROUTE_LOCALNET() only if saddr
or/and daddr are loopback addresse.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/linux/inetdevice.h
net/ipv4/route.c