内存管理之bootmem管理之释放内存
2017-03-06 10:10
288 查看
主要还是两个函数free_bootmem_node和free_bootmem
这里主要是标记相应比特位为0,空闲。
/** * free_bootmem_node - mark a page range as usable * @pgdat: node the range resides on * @physaddr: starting address of the range * @size: size of the range in bytes * * Partial pages will be considered reserved and left as they are. * * The range must reside completely on the specified node. */ void __init free_bootmem_node(pg_data_t *pgdat, unsigned long physaddr, unsigned long size) { unsigned long start, end; kmemleak_free_part_phys(physaddr, size); start = PFN_UP(physaddr); end = PFN_DOWN(physaddr + size); mark_bootmem_node(pgdat->bdata, start, end, 0, 0); }
/** * free_bootmem - mark a page range as usable * @addr: starting physical address of the range * @size: size of the range in bytes * * Partial pages will be considered reserved and left as they are. * * The range must be contiguous but may span node boundaries. */void __init free_bootmem(unsigned long physaddr, unsigned long size){unsigned long start, end;kmemleak_free_part_phys(physaddr, size);start = PFN_UP(physaddr);end = PFN_DOWN(physaddr + size);mark_bootmem(start, end, 0, 0);}
相关文章推荐
- 内存管理之bootmem管理之__free_pages_boot_core
- 内存管理之bootmem管理之free_all_bootmem
- 内存管理之bootmem管理之释放所有bootmem内存
- 内存管理之bootmem管理之对外分配函数
- 内存管理之bootmem管理之标记内存为reserve
- 内存管理之bootmem管理之标记内存
- linux 内核 内存管理 bootmem alloctor 申请内存
- linux 内存管理之bootmem allocator
- 启动期间的内存管理之bootmem_init初始化内存管理--Linux内存管理(十二)
- linux 内存管理之bootmem allocator
- bootmem内存的分配
- uboot中对Flash和DDR的管理
- Hadoop集群管理之内存管理
- OC加强知识点笔记-内存管理,@class,NSString 内存管理
- 基于springboot的文档管理
- 170630、springboot编程之普通类中调用spring管理的bean对象
- 通过Eureka、DiscoveryClient实现Spring Boot Admin管理功能
- iOS 非ARC基本内存管理系列 2-多对象内存管理(2)
- 【SpringBoot探索四】SpringBoot项目集成Swagger2管理接口文档
- 内存管理之memblock管理之移除块