summaryrefslogtreecommitdiffstats
path: root/net/ipv4
diff options
context:
space:
mode:
authorJesper Dangaard Brouer <brouer@redhat.com>2015-09-28 12:47:14 +0200
committerDavid S. Miller <davem@davemloft.net>2015-09-28 22:51:15 -0700
commit8a4683a5e06efda7e1f327213678d4dcafc0d894 (patch)
treef477f7b26896e0ed159aff107961a60ab2d11068 /net/ipv4
parentd2e1339f40db753286ca0a92c92a847e08c5d2de (diff)
downloadlinux-8a4683a5e06efda7e1f327213678d4dcafc0d894.tar.gz
linux-8a4683a5e06efda7e1f327213678d4dcafc0d894.tar.bz2
linux-8a4683a5e06efda7e1f327213678d4dcafc0d894.zip
net: help compiler generate better code in eth_get_headlen
Noticed that the compiler (gcc version 4.8.5 20150623 (Red Hat 4.8.5-4) (GCC)) generated suboptimal assembler code in eth_get_headlen(). This early return coding style is usually not an issue, on super scalar CPUs, but the compiler choose to put the return statement after this very unlikely branch, thus creating larger jump down to the likely code path. Performance wise, I could measure slightly less L1-icache-load-misses and less branch-misses, and an improvement of 1 nanosec with an IP-forwarding use-case with 257 bytes packets with ixgbe (CPU i7-4790K @ 4.00GHz). Signed-off-by: Jesper Dangaard Brouer <brouer@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4')
0 files changed, 0 insertions, 0 deletions