SLUB 的类三级缓存结构
前言 本文基于 6.1 版本的 Linux 内核代码,阐述笔者对 SLUB 分配器原理的个人理解。本文的分析忽略以下内容:
所有 debug 相关特性(如 KASAN) 所有安全增强特性(如 CONFIG_SLAB_FREELIST_HARDENED) SLUB per-cpu partial cache 特性(CONFIG_SLUB_CPU_PARTIAL=n) 换言之,本文只关注最底层最基础的 SLUB 运行逻辑——一种类三级缓存的结构。该想法是在上班通勤途中阅读此文 获得的启发,遂希望通过阅读代码和画图整理,将之梳理清楚。
概述 一级缓存:per-cpu SLAB cache 代表结构:struct …