Function report | 
Source Code:mm\page_alloc.c | 
Create Date:2022-07-28 15:04:59 | 
| Last Modify:2020-03-12 14:18:49 | Copyright©Brick | 
| home page | Tree | 
| Annotation kernel can get tool activity | Download SCCT | Chinese | 
Name:__isolate_free_page
Proto:int __isolate_free_page(struct page *page, unsigned int order)
Type:int
Parameter:
| Type | Parameter | Name | 
|---|---|---|
| struct page * | page | |
| unsigned int | order | 
| 3134 | BUG_ON(!PageBuddy() indicates that the page is free and in the buddy system* (see mm/page_alloc.c).) | 
| 3137 | mt = get_pageblock_migratetype(page) | 
| 3139 | If Not is_migrate_isolate(mt) Then | 
| 3146 | watermark = zone watermarks, access with *_wmark_pages(zone) macros [WMARK_MIN] + (1UL << order) | 
| 3147 | If Not zone_watermark_ok(zone, 0, watermark, 0, allow allocations from CMA areas ) Then Return 0 | 
| 3150 | __mod_zone_freepage_state(zone, - (1UL << order), mt) | 
| 3155 | del_page_from_free_area(page, area) | 
| 3161 | If order >= Huge pages are a constant size - 1 Then | 
| 3164 | mt = get_pageblock_migratetype(page) | 
| 3165 | If Not is_migrate_isolate(mt) && Not is_migrate_cma(mt) && Not is_migrate_highatomic(mt) Then set_pageblock_migratetype(page, MIGRATE_MOVABLE) | 
| 3173 | Return 1UL << order | 
| Name | Describe | 
|---|---|
| unset_migratetype_isolate | |
| isolate_freepages_block | Isolate free pages onto a private freelist. If @strict is true, will abort* returning 0 on any invalid PFNs or non-free pages inside of the pageblock* (even though it may still end up isolating some pages). | 
| Source code conversion tool public plug-in interface  | X | 
|---|---|
| Support c/c++/esqlc/java Oracle/Informix/Mysql Plug-in can realize: logical Report Code generation and batch code conversion  |