Linux kernel内存管理之free_area
2017-03-15 08:15
232 查看
zone 空闲页管理:
/* Free memory management - zoned buddy allocator. */ #ifndef CONFIG_FORCE_MAX_ZONEORDER #define MAX_ORDER 11 #else #define MAX_ORDER CONFIG_FORCE_MAX_ZONEORDER #endif #define MAX_ORDER_NR_PAGES (1 << (MAX_ORDER - 1))
/* free areas of different sizes */ struct free_area free_area[MAX_ORDER];
Order MIGRATE_TYPES --------------- ----> ------------------ |free_area:0 | |MIGRATE_UNMOVABLE | --------------- |MIGRATE_MOVABLE | |MIGRATE_RECLAIMABLE| |MIGRATE_PCPTYPES | |MIGRATE_CMA | |MIGRATE_ISOLATE | | nr_free | --------------------- ---------------- ----> ------------------ |free_area:1 | |MIGRATE_UNMOVABLE | --------------- |MIGRATE_MOVABLE | |MIGRATE_RECLAIMABLE| |MIGRATE_PCPTYPES | |MIGRATE_CMA | |MIGRATE_ISOLATE | | nr_free | --------------------- --------------- ----> ------------------ |free_area:2 | |MIGRATE_UNMOVABLE | --------------- |MIGRATE_MOVABLE | |MIGRATE_RECLAIMABLE| |MIGRATE_PCPTYPES | |MIGRATE_CMA | |MIGRATE_ISOLATE | | nr_free | --------------------- ---------------- ----> ------------------ |free_area:3 | |MIGRATE_UNMOVABLE | --------------- |MIGRATE_MOVABLE | |MIGRATE_RECLAIMABLE| |MIGRATE_PCPTYPES | |MIGRATE_CMA | |MIGRATE_ISOLATE | | nr_free | --------------------- --------------- ----> ------------------ |free_area:4 | |MIGRATE_UNMOVABLE | --------------- |MIGRATE_MOVABLE | |MIGRATE_RECLAIMABLE| |MIGRATE_PCPTYPES | |MIGRATE_CMA | |MIGRATE_ISOLATE | | nr_free | --------------------- ---------------- ----> ------------------ |free_area:5 | |MIGRATE_UNMOVABLE | --------------- |MIGRATE_MOVABLE | |MIGRATE_RECLAIMABLE| |MIGRATE_PCPTYPES | |MIGRATE_CMA | |MIGRATE_ISOLATE | | nr_free | --------------------- --------------- ----> ------------------ |free_area:6 | |MIGRATE_UNMOVABLE | --------------- |MIGRATE_MOVABLE | |MIGRATE_RECLAIMABLE| |MIGRATE_PCPTYPES | |MIGRATE_CMA | |MIGRATE_ISOLATE | | nr_free | --------------------- ---------------- ----> ------------------ |free_area:7 | |MIGRATE_UNMOVABLE | --------------- |MIGRATE_MOVABLE | |MIGRATE_RECLAIMABLE| |MIGRATE_PCPTYPES | |MIGRATE_CMA | |MIGRATE_ISOLATE | | nr_free | --------------------- --------------- ----> ------------------ |free_area:8 | |MIGRATE_UNMOVABLE | --------------- |MIGRATE_MOVABLE | |MIGRATE_RECLAIMABLE| |MIGRATE_PCPTYPES | |MIGRATE_CMA | |MIGRATE_ISOLATE | | nr_free | --------------------- ---------------- ----> ------------------ |free_area:9 | |MIGRATE_UNMOVABLE | --------------- |MIGRATE_MOVABLE | |MIGRATE_RECLAIMABLE| |MIGRATE_PCPTYPES | |MIGRATE_CMA | |MIGRATE_ISOLATE | | nr_free | --------------------- --------------- ----> ------------------ |free_area:10 | |MIGRATE_UNMOVABLE | --------------- |MIGRATE_MOVABLE | |MIGRATE_RECLAIMABLE| |MIGRATE_PCPTYPES | |MIGRATE_CMA | |MIGRATE_ISOLATE | | nr_free | ---------------------
相关文章推荐
- 内存管理API之free_vm_area
- 内存管理概述、内存分配与释放、地址映射机制(mm_struct, vm_area_struct)、malloc/free 的实现
- 内存管理概述、内存分配与释放、地址映射机制(mm_struct, vm_area_struct)、malloc/free 的实现
- 内存管理概述、内存分配与释放、地址映射机制(mm_struct, vm_area_struct)、malloc/free 的实现
- 内存管理概述、内存分配与释放、地址映射机制(mm_struct, vm_area_struct)、malloc/free 的实现
- C语言 内存管理精讲(malloc,calloc,free,relloc使用)
- C语言内存管理:malloc、calloc、free的实现
- C语言内存管理:malloc、calloc、free的实现
- 单片机上内存管理(重定义malloc & free)de实现
- 内存管理(C语言中malloc和free的用法)
- Linux之glibc内存管理malloc和free
- 内存管理: malloc()与free()的一种基于池表结构的实现
- 内存管理API之__get_vm_area
- 内存管理API之free_pages_exact
- 自己写的STM32 内存管理 实现了malloc,free,remalloc等函数
- 内存管理(C语言中malloc和free的用法)
- linux内存管理-linux/mm/memory.c/free_page_tables()【转】
- 自己写的STM32 内存管理 实现了malloc,free,remalloc等函数
- 内存管理、内存分配malloc、free、realloc,printf小结
- 内存管理API之kmem_cache_free