zfs/module
Shengqi Chen 7b580dcdf2 zcommon: add specialized versions of cityhash4
Specializing cityhash4 on 32-bit architectures can reduce the size
of stack frames as well as instruction count. This is a tiny but
useful optimization, since some callers invoke it frequently.

When specializing into 1/2/3/4-arg versions, the stack usage
(in bytes) on some 32-bit arches are listed as follows:

- x86: 32, 32, 32, 40
- arm-v7a: 20, 20, 28, 36
- riscv: 0, 0, 0, 16
- power: 16, 16, 16, 32
- mipsel: 8, 8, 8, 24

And each actual argument (even if passing 0) contributes evenly
to the number of multiplication instructions generated:

- x86: 9, 12, 15 ,18
- arm-v7a: 6, 8, 10, 12
- riscv / power: 12, 18, 20, 24
- mipsel: 9, 12, 15, 19

On 64-bit architectures, the tendencies are similar. But both stack
sizes and instruction counts are significantly smaller thus negligible.

See more discussion at https://github.com/openzfs/zfs/pull/16483.

Acked-by: Alexander Motin <mav@FreeBSD.org>
Signed-off-by: Shengqi Chen <harry-chen@outlook.com>
2024-09-11 01:48:46 +08:00
..
avl Suppress Clang Static Analyzer false positive in the AVL tree code. 2023-03-08 13:51:21 -08:00
icp icp: remove redundant FreeBSD check 2024-05-31 15:13:59 -07:00
lua LUA: Backport CVE-2020-24370's patch 2024-02-07 11:53:05 -08:00
nvpair xdr: header cleanup 2024-04-03 15:13:27 -07:00
os Remove unused sysctl node 2024-09-03 17:52:33 -07:00
unicode Illumos #15286: do_composition() needs sign awareness 2023-01-05 11:16:21 -08:00
zcommon zcommon: add specialized versions of cityhash4 2024-09-11 01:48:46 +08:00
zfs dmu_objset: replace dnode_hash impl with cityhash4 2024-09-11 01:48:41 +08:00
zstd compress: change zio_compress API to use ABDs 2024-08-22 16:22:24 -07:00
.gitignore FreeBSD: Ignore symlink to i386 includes 2022-08-02 16:34:23 -07:00
Kbuild.in value strings: pretty printers for flags and enums 2024-09-05 13:40:05 -07:00
Makefile.bsd value strings: pretty printers for flags and enums 2024-09-05 13:40:05 -07:00
Makefile.in check-zstd-symbols: also ignore __pfx_ symbols 2023-09-18 09:08:41 -07:00