diff options
author | Eric Dumazet <edumazet@google.com> | 2012-08-06 22:19:56 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2012-08-07 19:24:55 -0400 |
commit | 425f09ab7d1c9da6ca4137dd639cb6fe3f8a88f3 (patch) | |
tree | 49c586d8025f671a8e47415f4364bfb818534569 /net/ipv4/fib_trie.c | |
parent | e07b94f1352723994d8b588ac5ed8af91bcc9fb6 (diff) |
net: output path optimizations
1) Avoid dirtying neighbour's confirmed field.
TCP workloads hits this cache line for each incoming ACK.
Lets write n->confirmed only if there is a jiffie change.
2) Optimize neigh_hh_output() for the common Ethernet case, were
hh_len is less than 16 bytes. Replace the memcpy() call
by two inlined 64bit load/stores on x86_64.
Bench results using udpflood test, with -C option (MSG_CONFIRM flag
added to sendto(), to reproduce the n->confirmed dirtying on UDP)
24 threads doing 1.000.000 UDP sendto() on dummy device, 4 runs.
before : 2.247s, 2.235s, 2.247s, 2.318s
after : 1.884s, 1.905s, 1.891s, 1.895s
Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4/fib_trie.c')
0 files changed, 0 insertions, 0 deletions