49fb5f0a1a
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> |
||
---|---|---|
.. | ||
ext2 | ||
fcb | ||
nvs | ||
CMakeLists.txt | ||
fat_fs.c | ||
fs.c | ||
fs_impl.c | ||
fs_impl.h | ||
fuse_fs_access.c | ||
Kconfig | ||
Kconfig.fatfs | ||
Kconfig.littlefs | ||
littlefs_fs.c | ||
shell.c |