Function report

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

Name:__isolate_free_page

Proto:int __isolate_free_page(struct page *page, unsigned int order)

Type:int

Parameter:

TypeParameterName
struct page *page
unsigned intorder
3129  area = Write-intensive fields used from the page allocator [order]
3134  BUG_ON(!PageBuddy() indicates that the page is free and in the buddy system* (see mm/page_alloc.c).)
3136  zone = page_zone(page)
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
3162  endpage = page + (1 << order) - 1
3163  When page < endpage cycle
3173  Return 1UL << order
Caller
NameDescribe
unset_migratetype_isolate
isolate_freepages_blockIsolate 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).