SLUB知识点记录


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状态.

 

  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值