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 |