zephyr/subsys/fs
Damian Krolik 49fb5f0a1a nvs: replace CRC with better hash function for lookup cache
NVS lookup cache currently uses CRC8/16 as a hash function
to determine the cache position, which is not ideal choice.
For example, when NVS lookup cache size is 512 and 256
subsequent NVS IDs are written (that is, 0, 1.., 255), this
results in 128 cache collisions.

It is better to use a dedicated integer hash function. This
PR uses one of the 16-bit integer hash functions discovered
with https://github.com/skeeto/hash-prospector project. The
hash function was additionally tested in the context of NVS
lookup cache using simple NVS ID allocation patterns as well
as using real device NVS dump.

Also, add a test case to verify that the hash function is
not extremely bad.

Signed-off-by: Damian Krolik <damian.krolik@nordicsemi.no>
2023-09-04 18:21:20 +02:00
..
ext2 kernel: Modify the signature of k_mem_slab_free() 2023-09-03 18:20:59 -04:00
fcb fs: fcb: add option to disable CRC for fcb entries 2023-01-18 22:18:37 +00:00
nvs nvs: replace CRC with better hash function for lookup cache 2023-09-04 18:21:20 +02:00
CMakeLists.txt fs: ext2: Implementation of basic operations 2023-08-03 12:22:01 -04:00
fat_fs.c kernel: Modify the signature of k_mem_slab_free() 2023-09-03 18:20:59 -04:00
fs.c init: remove the need for a dummy device pointer in SYS_INIT functions 2023-04-12 14:28:07 +00:00
fs_impl.c includes: prefer <zephyr/kernel.h> over <zephyr/zephyr.h> 2022-09-05 16:31:47 +02:00
fs_impl.h subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
fuse_fs_access.c includes: prefer <zephyr/kernel.h> over <zephyr/zephyr.h> 2022-09-05 16:31:47 +02:00
Kconfig fs: ext2: Implementation of basic operations 2023-08-03 12:22:01 -04:00
Kconfig.fatfs modules: fs: Add reentrant zephyr support 2023-03-13 11:58:57 +01:00
Kconfig.littlefs fs: littlefs: remove dependency on flash map from FILE_SYSTEM_LITTLEFS 2023-05-19 15:53:29 +02:00
littlefs_fs.c kernel: Modify the signature of k_mem_slab_free() 2023-09-03 18:20:59 -04:00
shell.c fs: shell: littlefs: add support of block devices 2023-09-01 17:44:15 +02:00