linux/drivers/gpu/drm/amd/include
Felix Kuehling 5d86b2c391 drm/amd: Closed hash table with low overhead (v2)
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>
2017-09-26 14:53:19 -04:00
..
asic_reg drm/amd/powerplay: add CI asics support to smumgr (v3) 2017-09-26 13:06:57 -04:00
ivsrcid drm/amd: Add DCN ivsrcids (v2) 2017-05-24 17:41:55 -04:00
linux drm/amd: Closed hash table with low overhead (v2) 2017-09-26 14:53:19 -04:00
amd_acpi.h drm/amdgpu: add new ATIF ACPI method 2017-03-29 23:53:49 -04:00
amd_pcie_helpers.h gpu: drm: amd/radeon: Convert printk(KERN_<LEVEL> to pr_<level> 2017-03-29 23:53:24 -04:00
amd_pcie.h drm/amdgpu: change pcie_gen_cap magic code to macro 2016-07-07 15:01:59 -04:00
amd_shared.h drm/amd/powerplay: use struct amd_pm_funcs in powerplay 2017-09-18 23:30:34 -04:00
atom-bits.h drm/amdgpu: move some atombios definitions to common folder (v2) 2015-08-17 16:50:19 -04:00
atom-names.h drm/amdgpu: move some atombios definitions to common folder (v2) 2015-08-17 16:50:19 -04:00
atom-types.h drm/amdgpu: move some atombios definitions to common folder (v2) 2015-08-17 16:50:19 -04:00
atombios.h scripts/spelling.txt: add "aligment" pattern and fix typo instances 2017-02-27 18:43:46 -08:00
atomfirmware.h drm/amd/include: Add hdmi_redriver_set to atomfirmware 2017-08-29 15:27:51 -04:00
atomfirmwareid.h drm/amdgpu: add the new atomfirmware interface header 2017-03-29 23:54:15 -04:00
cgs_common.h drm/amd: remove min/max addr handling from cgs 2017-09-13 12:10:13 -04:00
cgs_linux.h drm/amdgpu: switch ih handling to two levels (v3) 2017-03-29 23:53:37 -04:00
cik_structs.h drm/amd: Put cik structures in a common place 2015-01-02 23:18:39 +02:00
displayobject.h drm/amdgpu: add the new atomfirmware interface header 2017-03-29 23:54:15 -04:00
dm_pp_interface.h drm/amd: add structures for display/powerplay interface 2017-03-29 23:54:53 -04:00
kgd_kfd_interface.h drm/amdgpu: Add PASID management 2017-09-26 13:07:02 -04:00
pptable.h drm/amdgpu: add raven related define in pptable.h. 2017-05-24 17:41:50 -04:00
v9_structs.h drm/amdgpu/gfx9: adjust mqd allocation size 2017-08-29 15:28:00 -04:00
vi_structs.h drm/amdgpu/gfx8: drop cz mqd 2017-08-29 15:27:58 -04:00