Files
linux/net
David S. Miller 44713b67db ipv4: Optimize flow initialization in output route lookup.
We burn a lot of useless cycles, cpu store buffer traffic, and
memory operations memset()'ing the on-stack flow used to perform
output route lookups in __ip_route_output_key().

Only the first half of the flow object members even matter for
output route lookups in this context, specifically:

FIB rules matching cares about:

	dst, src, tos, iif, oif, mark

FIB trie lookup cares about:

	dst

FIB semantic match cares about:

	tos, scope, oif

Therefore only initialize these specific members and elide the
memset entirely.

On Niagara2 this kills about ~300 cycles from the output route
lookup path.

Likely, we can take things further, since all callers of output
route lookups essentially throw away the on-stack flow they use.
So they don't care if we use it as a scratch-pad to compute the
final flow key.

Signed-off-by: David S. Miller <davem@davemloft.net>
Acked-by: Eric Dumazet <eric.dumazet@gmail.com>
2011-03-04 21:24:47 -08:00
..
2010-10-25 13:09:44 -07:00
2011-01-24 15:32:47 -08:00
2011-01-27 14:15:54 -08:00
2011-01-12 19:00:40 -08:00
2010-10-21 15:44:13 +02:00
2011-03-01 22:51:52 -08:00
2011-02-09 22:36:13 -08:00
2010-12-16 13:44:24 -08:00
2010-10-15 15:53:27 +02:00
2011-02-23 14:11:30 -08:00
…