函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:mm\page_isolation.c Create Date:2022-07-27 17:59:47
Last Modify:2020-03-12 14:18:49 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:start_isolate_page_range() - make page-allocation-type of range of pages to* be MIGRATE_ISOLATE.*@start_pfn: The lower PFN of the range to be isolated.*@end_pfn: The upper PFN of the range to be isolated.

函数原型:int start_isolate_page_range(unsigned long start_pfn, unsigned long end_pfn, unsigned migratetype, int flags)

返回类型:int

参数:

类型参数名称
unsigned longstart_pfn
unsigned longend_pfn
unsignedmigratetype
intflags
200  nr_isolate_pageblock等于0
202  BUG_ON(!IS_ALIGNED(start_pfn, pageblock_nr_pages))
203  BUG_ON(!IS_ALIGNED(end_pfn, pageblock_nr_pages))
205 pfn小于end_pfn循环
208  page等于__first_valid_page(pfn, pageblock_nr_pages)
209  如果page
211  undo_pfn等于pfn
212  转到:undo
214  nr_isolate_pageblock自加
217  返回:nr_isolate_pageblock
218  undo :
219 pfn小于undo_pfn循环
222  page等于Return page for the valid pfn only if the page is online. All pfn* walkers which rely on the fully initialized page->flags and others* should use this rather than pfn_valid && pfn_to_page(pfn)
223  如果非page则继续下一循环
225  unset_migratetype_isolate(page, migratetype)
228  返回:负EBUSY