diff options
author | Hannes Frederic Sowa <hannes@stressinduktion.org> | 2014-11-05 00:23:04 +0100 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2014-11-05 22:01:21 -0500 |
commit | e5a2c899957659cd1a9f789bc462f9c0b35f5150 (patch) | |
tree | 4c9b8a6f89d961daf9ada9f5ee95f8b371ce3a04 /lib/locking-selftest-rlock.h | |
parent | 2c99cd914d4fed9160d98849c9dd38034616768e (diff) | |
download | blackbird-op-linux-e5a2c899957659cd1a9f789bc462f9c0b35f5150.tar.gz blackbird-op-linux-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 'lib/locking-selftest-rlock.h')
0 files changed, 0 insertions, 0 deletions