函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:include\linux\page-flags.h Create Date:2022-07-27 06:40:11
Last Modify:2020-03-12 14:18:49 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:PageBuddy() indicates that the page is free and in the buddy system* (see mm/page_alloc.c).

函数原型:static inline __attribute__((__always_inline__)) int PageBuddy(struct page *page)

返回类型:int

参数:

类型参数名称
struct page *page
756  返回:* If the page is neither PageSlab nor mappable to userspace, * the value stored here may help determine what this page * is used for. See page-flags.h for a list of page types * which are currently stored here.按位与0xf0000000按位或0x00000080的值的值恒等于0xf0000000
调用者
名称描述
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).
isolate_migratepages_blocksolate_migratepages_block() - isolate all migrate-able pages within* a single pageblock*@cc: Compaction control structure.*@low_pfn: The first PFN to isolate*@end_pfn: The one-past-the-last PFN to isolate, within same pageblock
page_is_buddyThis function checks whether a page is free && is the buddy* we can coalesce a page and its buddy if* (a) the buddy is not in a hole (check before calling!) &&* (b) the buddy is in the buddy system &&* (c) a page and its buddy have the same order &&
move_freepagesMove the free pages in a range to the free lists of the requested type.* Note that start_page and end_pages are not aligned on a pageblock* boundary. If alignment is required, use move_freepages_block()
__isolate_free_page
has_unmovable_pagesThis function checks whether pageblock includes unmovable pages or not.* If @count is not zero, it is okay to include less @count unmovable pages* PageLRU check without isolation or lru_lock could race so that
is_free_buddy_page
set_hwpoison_free_buddy_pageSet PG_hwpoison flag if a given page is confirmed to be a free page. This* test is performed under the zone lock to prevent a race against page* allocation.
shuffle_valid_pageFor two pages to be swapped in the shuffle, they must be free (on a* 'free_area' lru), have the same order, and have the same migratetype.
pagetypeinfo_showmixedcount_print
read_page_owner
init_pages_in_zone
unset_migratetype_isolate
__test_page_isolated_in_pageblockTest all pages in the range is free(means isolated) or not.* all pages in [start_pfn...end_pfn) must be in the same zone.* zone->lock must be held before call this.* Returns the last tested pfn.
__ClearPageBuddyPageBuddy() indicates that the page is free and in the buddy system* (see mm/page_alloc.c).