基本上我想设置一个 map/hash/idr_type_of_thing 将唯一的 u32 映射到唯一的指针值(在当前映射集中是唯一的)。它的核心是 u32 是 DMA 引擎看到的缓冲区的物理地址,指针是关于该缓冲区的上下文 blob,包含缓冲区本身和有关缓冲区的其他元数据。当我从 DMA 引擎获得一些事件时,它提供了 u32,我想从中找到上下文 blob 以进行进一步处理(如释放 DMA 映射、空闲缓冲区等)。DMA 引擎只能返回 u32 物理地址。是否有一些低开销的快速方案来执行此映射,而无需提出一些运行良好的散列函数?顺便说一句,对于这种类型的映射,有什么好的散列函数可以很好地工作(没有冲突?)?
可以同时存在的映射总数是一些固定的小数字,比如 512。
谢谢。