Linux 6.8放弃了SLAB分配器 在v6.5中弃用之后,现在只是离开SLUB来完成所有的分配任务。对于Linux 6.9来说,SLAB移除将继续进行清理,并进行更多的SLUB改进。
Vlastimil Babka提交了Linux 6.9的SLUB(SLAB)更改,并将其突出显示为:
- 自由加载优化(周成明)
当每个CPU的slot耗尽,并且从CPU部分列表加载了一个新的slot时,优化加载以避免irq启用/禁用循环。这导致了3.5%的性能改进"perf benched messaging"测试。
- SLAB移除后的内核引导参数清理(宋雄伟)
由于有两种不同的主要slab实现,我们有引导参数前缀为slab_和sub_,一些后来变成别名,因为两个实现获得了相同的功能(即slab_nomrance vs sub_nomrance)。为了最终摆脱特定于实现的名称,规范的和文档化的参数现在都以slab_为前缀,slub_variants被弃用,但仍然有效。
- SLAB_ktrl_缓存创建标志清理(Vlastimil Babka)
标志对#define值进行了硬编码,添加新值时变得繁琐且容易出错。通过一个枚举来分配值,该枚举负责提供唯一的位数。还不推荐仅由SLAB使用的SLAB_MEM_SPREAD,因此自SLAB移除以来,这是一个无操作。给它指定一个显式的零值。 标记使用的移除在相应的子系统中独立处理,最终移除计划用于下一个版本的剩余使用。
-其他清理和修复(周成明、王晓蕾、郑业健)
包括删除未使用的代码或函数参数以及修复memleak。
此次拉动 provides the full list of patches making up this pull request of code since merged for Linux 6.9.