Hannes Frederic Sowa e5a2c89995 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>
2014-11-05 22:01:21 -05:00
..
2014-10-09 11:35:48 +03:00
2014-10-14 13:08:29 +11:00
2011-03-11 14:25:50 +00:00
2014-06-04 16:54:19 -07:00
2011-10-29 21:20:22 +02:00
2014-04-30 19:49:37 +01:00
2012-10-06 03:04:57 +09:00
2014-08-06 18:01:25 -07:00
2014-05-05 09:09:14 +02:00
2014-05-05 09:09:14 +02:00
2013-06-18 13:48:45 +02:00
2014-08-08 15:57:25 -07:00
2014-08-06 18:01:25 -07:00
2012-07-30 17:25:16 -07:00
2014-06-25 17:45:43 -07:00
2012-01-31 23:19:47 +02:00
2013-04-29 18:28:42 -07:00