最近在看 linux 内核网络相关的代码,里面有许多 rhashtable 的操作。里面会计算 hash 。有些模块的 key 值有好几个成员。我在想是否可以对此进行优化。如果有相关的硬件指令可以使用某种算法对此进行 hash 计算,是否能大幅提升效率。比如有些高性能场景,每秒可能有上百万个包需要对 IP,port 等进行 hash 运算,然后根据 hash 值查找。V 友有相关的经验吗?
最近在看 linux 内核网络相关的代码,里面有许多 rhashtable 的操作。里面会计算 hash 。有些模块的 key 值有好几个成员。我在想是否可以对此进行优化。如果有相关的硬件指令可以使用某种算法对此进行 hash 计算,是否能大幅提升效率。比如有些高性能场景,每秒可能有上百万个包需要对 IP,port 等进行 hash 运算,然后根据 hash 值查找。V 友有相关的经验吗?
1
luny Jan 12, 2024
有些硬件是带网络加速单元,就是把一些 hash 和 checksum 硬件计算了,比如 TOE
|
2
zizon Jan 13, 2024
除非有相当一部分功能 offload 到硬件,不然只是单纯的 hash offload 的话,按个人理解可能还得走一趟 pic 接口之类的,不一定划算?
|