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 |
---------------------