mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-28 11:18:45 +07:00
5d86b2c391
This adds a statically sized closed hash table implementation with low memory and CPU overhead. The API is inspired by kfifo. Storing, retrieving and deleting data does not involve any dynamic memory management, which makes it ideal for use in interrupt context. Static memory usage per entry comprises a 32 or 64 bit hash key, two bits for occupancy tracking and the value size stored in the table. No list heads or pointers are needed. Therefore this data structure should be quite cache-friendly, too. It uses linear probing and lazy deletion. During lookups free space is reclaimed and entries relocated to speed up future lookups. v2: squash in do_div and _BITOPS_LONG_SHIFT fixes Signed-off-by: Felix Kuehling <Felix.Kuehling@amd.com> Acked-by: Christian König <christian.koenig@amd.com> Acked-by: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
28 lines
584 B
Plaintext
28 lines
584 B
Plaintext
menu "AMD Library routines"
|
|
|
|
#
|
|
# Closed hash table
|
|
#
|
|
config CHASH
|
|
tristate "Closed hash table"
|
|
help
|
|
Statically sized closed hash table implementation with low
|
|
memory and CPU overhead.
|
|
|
|
config CHASH_STATS
|
|
bool "Closed hash table performance statistics"
|
|
depends on CHASH
|
|
default n
|
|
help
|
|
Enable collection of performance statistics for closed hash tables.
|
|
|
|
config CHASH_SELFTEST
|
|
bool "Closed hash table self test"
|
|
depends on CHASH
|
|
default n
|
|
help
|
|
Runs a selftest during module load. Several module parameters
|
|
are available to modify the behaviour of the test.
|
|
|
|
endmenu
|