1. Linux内核释放内存以后,可能会把其值设置为0x6b
#definePOISON_INUSE 0x5a/* for use-uninitialised poisoning */
#define POISON_FREE 0x6b/* for use-after-free poisoning */#define POISON_END0xa5 /* end-byte of poisoning */
2. slab的frozen标志作用
2.1 slab刚分配时,percpu->freelist指向object内存,percpu->page->freelist==NULL
2.2 slab刚分配时,slab处于frozen状态.
2.3 slab 的percpu->freelist和percpu->page->freelist都为NULL时,slab被unfrozen .
slab处于node->partial链表时,也是处于unfrozen状态.
slab处于percpu->partial时,处于frozen状态.
3.当node->nr_partial大于等于cache->min_partial 时会直接释放空闲的slab到伙伴系统
4. percpu->cpu_partial 如果没有打开SLAB DEBUG且定义了CONFIG_SLUB_CPU_PARTIAL宏,则有此链表
3. slab的inuse标志
只有当slab的objects在percpu->freelist时,才计算到inuse,其余情况(percpu->page->freelist, percpu->parttial, node->parttial)都处于unuse状态.