glibc/nss
Noah Goldstein 3d155d4b6c nss: Optimize nss_hash in nss_hash.c
The prior unrolling didn't really do much as it left the dependency
chain between iterations. Unrolled the loop for 4 so 4x multiplies
could be pipelined in out-of-order machines.

Results for __nss_hash
Benchmarked on Tigerlake: 11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz

Time as Geometric Mean of N=25 runs
Geometric of all benchmark New / Old: 0.845
  type, length, New Time, Old Time, New Time / Old Time
 fixed,      0,    4.019,    3.729,               1.078
 fixed,      1,     4.95,    5.707,               0.867
 fixed,      2,    5.152,    5.657,               0.911
 fixed,      3,    4.641,    5.721,               0.811
 fixed,      4,    5.551,     5.81,               0.955
 fixed,      5,    6.525,    6.552,               0.996
 fixed,      6,    6.711,    6.561,               1.023
 fixed,      7,    6.715,    6.767,               0.992
 fixed,      8,    7.874,    7.915,               0.995
 fixed,      9,    8.888,    9.767,                0.91
 fixed,     10,    8.959,    9.762,               0.918
 fixed,     11,    9.188,    9.987,                0.92
 fixed,     12,    9.708,   10.618,               0.914
 fixed,     13,   10.393,    11.14,               0.933
 fixed,     14,   10.628,   12.097,               0.879
 fixed,     15,   10.982,   12.965,               0.847
 fixed,     16,   11.851,   14.429,               0.821
 fixed,     32,   24.334,   34.414,               0.707
 fixed,     64,   55.618,   86.688,               0.642
 fixed,    128,  118.261,   224.36,               0.527
 fixed,    256,  256.183,  538.629,               0.476
random,      2,   11.194,   11.556,               0.969
random,      4,   17.516,   17.205,               1.018
random,      8,   23.501,   20.985,                1.12
random,     16,   28.131,   29.212,               0.963
random,     32,   35.436,   38.662,               0.917
random,     64,    45.74,   58.868,               0.777
random,    128,   75.394,  121.963,               0.618
random,    256,  139.524,  260.726,               0.535
Reviewed-by: Siddhesh Poyarekar <siddhesh@sourceware.org>
2022-05-23 10:38:40 -05:00
..
nss_compat Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
nss_db Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
nss_files Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-nss-compat1.root nss: fix nss_database_lookup2's alternate handling [BZ #27416] 2021-03-09 14:34:50 -05:00
tst-nss-db-endgrent.root/etc nss_db: fix endent wrt NULL mappings [BZ #24695] [BZ #24696] 2019-07-10 14:51:18 -04:00
tst-nss-db-endpwent.root nss_db: fix endent wrt NULL mappings [BZ #24695] [BZ #24696] 2019-07-10 14:51:18 -04:00
tst-nss-files-hosts-long.root/etc Fix failing nss/tst-nss-files-hosts-long with local resolver 2021-09-07 21:41:38 +02:00
tst-nss-gai-actions.root/etc Simplify allocations and fix merge and continue actions [BZ #28931] 2022-03-22 19:38:36 +05:30
tst-nss-test3.root Add test-in-container infrastructure. 2018-08-22 21:20:37 -04:00
tst-reload1.root Fix failing nss/tst-nss-files-hosts-long. 2021-07-12 11:59:04 +02:00
tst-reload2.root nss: Re-enable NSS module loading after chroot [BZ #27389] 2021-03-02 16:14:18 -05:00
alias-lookup.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
bug17079.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
bug-erange.c Update. 2002-09-29 18:25:48 +00:00
compat-lookup.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
databases.def Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
db-Makefile Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
Depend Update. 2000-01-02 04:20:21 +00:00
digits_dots.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
ethers-lookup.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
function.def Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
getent.c Update copyright dates not handled by scripts/update-copyrights. 2022-01-01 11:42:26 -08:00
getnssent_r.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
getnssent.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
getXXbyYY_r.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
getXXbyYY.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
getXXent_r.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
getXXent.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
grp-lookup.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
hosts-lookup.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
key-lookup.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
makedb.c Update copyright dates not handled by scripts/update-copyrights. 2022-01-01 11:42:26 -08:00
Makefile nss: Add tests for the nss_hash in nss_hash.h 2022-05-23 10:38:40 -05:00
netgrp-lookup.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
network-lookup.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
nss_action_parse.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
nss_action.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
nss_action.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
nss_database.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
nss_database.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
nss_fgetent_r.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
nss_files_data.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
nss_files_fopen.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
nss_files_functions.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
nss_hash.c nss: Optimize nss_hash in nss_hash.c 2022-05-23 10:38:40 -05:00
nss_module.c nss: Protect against errno changes in function lookup (bug 28953) 2022-03-11 08:24:19 +01:00
nss_module.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
nss_parse_line_result.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
nss_readline.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
nss_test1.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
nss_test2.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
nss_test_errno.c hurd: Fix arbitrary error code 2022-04-12 22:15:48 +02:00
nss_test.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
nss_test.ver Extend NSS test suite 2017-07-17 15:52:44 -04:00
nss.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
nsswitch.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
nsswitch.conf Remove --enable-obsolete-nsl configure flag 2020-07-08 17:25:57 +02:00
nsswitch.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
proto-lookup.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
pwd-lookup.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
rewrite_field.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
rpc-lookup.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
service-lookup.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
sgrp-lookup.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
simple-nss-hash.h nss: Add tests for the nss_hash in nss_hash.h 2022-05-23 10:38:40 -05:00
spwd-lookup.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
test-digits-dots.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
test-netdb.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-cancel-getpwuid_r.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-field.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-nss-compat1.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-nss-db-endgrent.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-nss-db-endpwent.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-nss-files-alias-leak.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-nss-files-alias-truncated.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-nss-files-hosts-erange.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-nss-files-hosts-getent.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-nss-files-hosts-long.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-nss-files-hosts-multi.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-nss-gai-actions.c Simplify allocations and fix merge and continue actions [BZ #28931] 2022-03-22 19:38:36 +05:30
tst-nss-getpwent.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-nss-hash.c nss: Add tests for the nss_hash in nss_hash.h 2022-05-23 10:38:40 -05:00
tst-nss-static.c Update nss tests to new skeleton 2017-08-17 18:00:51 -04:00
tst-nss-test1.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-nss-test2.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-nss-test3.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-nss-test4.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-nss-test5.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-nss-test_errno.c nss: Protect against errno changes in function lookup (bug 28953) 2022-03-11 08:24:19 +01:00
tst-reload1.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-reload2.c Allow for unpriviledged nested containers 2022-04-04 14:17:08 -04:00
valid_field.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
valid_list_field.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
Versions nss_files: Move into libc 2021-07-07 18:33:52 +02:00
XXX-lookup.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00