diff options
author | 2014-11-05 00:23:04 +0100 | |
---|---|---|
committer | 2014-11-05 22:01:21 -0500 | |
commit | e5a2c899957659cd1a9f789bc462f9c0b35f5150 (patch) | |
tree | 4c9b8a6f89d961daf9ada9f5ee95f8b371ce3a04 /net/core/utils.c | |
parent | Merge branch 'amd-xgbe-next' (diff) | |
download | linux-rng-e5a2c899957659cd1a9f789bc462f9c0b35f5150.tar.xz linux-rng-e5a2c899957659cd1a9f789bc462f9c0b35f5150.zip |
fast_hash: avoid indirect function calls
By default the arch_fast_hash hashing function pointers are initialized
to jhash(2). If during boot-up a CPU with SSE4.2 is detected they get
updated to the CRC32 ones. This dispatching scheme incurs a function
pointer lookup and indirect call for every hashing operation.
rhashtable as a user of arch_fast_hash e.g. stores pointers to hashing
functions in its structure, too, causing two indirect branches per
hashing operation.
Using alternative_call we can get away with one of those indirect branches.
Acked-by: Daniel Borkmann <dborkman@redhat.com>
Cc: Thomas Graf <tgraf@suug.ch>
Signed-off-by: Hannes Frederic Sowa <hannes@stressinduktion.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/core/utils.c')
0 files changed, 0 insertions, 0 deletions