Welcome 微信登录

首页 / 操作系统 / Linux / Linux内存管理之slab机制(销毁cache)

cache的销毁很简单,依次检查和释放本地CPU cache、共享cache、三链以及cache本身。从cache的创建我们看到,创建的cache主要是从cache_cache中获得的,因为cache_cache中对象的大小就是cache结构体的大小,所以这里只是释放到cache_cache就OK了。[cpp]
  1. static void __kmem_cache_destroy(struct kmem_cache *cachep)  
  2. {  
  3.     int i;  
  4.     struct kmem_list3 *l3;  
  5.     /* 释放每个cpu local cache使用的struct array_cache对象 
  6.     ,注意此时是online cpu, cpu如果是down状 
  7.       态,并没有释放 */  
  8.     for_each_online_cpu(i)  
  9.         kfree(cachep->array[i]);  
  10.   
  11.     /* NUMA: free the list3 structures */  
  12.     for_each_online_node(i) {/*对每个在线的节点*/  
  13.         l3 = cachep->nodelists[i];  
  14.         if (l3) {  
  15.             /* 释放shared local cache使用的struct array_cache对象 */  
  16.             kfree(l3->shared);  
  17.             free_alien_cache(l3->alien);  
  18.             kfree(l3);/*释放三链*/  
  19.         }  
  20.     }  
  21.     /*释放cache,因为该cache为cache_cache中的对象,所以调用对象释放 
  22.     函数*/  
  23.     kmem_cache_free(&cache_cache, cachep);  
  24. }  
Linux内存管理之slab机制(创建cache)Linux内存管理之slab机制(概述)相关资讯      Linux内存管理 
  • Linux内存管理详述  (今 13:45)
  • Linux内存管理精述  (01月18日)
  • Linux内核——内存管理  (08/10/2014 09:18:23)
  • Linux系统的内存管理  (08月14日)
  • Linux内存管理-free学习心得  (02/16/2015 11:18:00)
  • Linux基础篇之内存管理机制  (03/16/2014 13:53:30)
本文评论 查看全部评论 (0)
表情: 姓名: 字数