函数逻辑报告 |
Source Code:mm\page_alloc.c |
Create Date:2022-07-27 16:34:38 |
Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
首页 | 函数Tree |
注解内核,赢得工具 | 下载SCCT | English |
函数名称:Try finding a free buddy page on the fallback list and put it on the free* list of requested migratetype, possibly along with other pages from the same* block, depending on fragmentation avoidance heuristics. Returns true if
函数原型:static __always_inline bool __rmqueue_fallback(struct zone *zone, int order, int start_migratetype, unsigned int alloc_flags)
返回类型:bool
参数:
类型 | 参数 | 名称 |
---|---|---|
struct zone * | zone | |
int | order | |
int | start_migratetype | |
unsigned int | alloc_flags |
2650 | 以current_order大于等于min_order循环 |
2652 | area等于伙伴系统空闲内存页[current_order]的地址 |
2655 | 如果fallback_mt恒等于负1则继续下一循环 |
2666 | 如果非can_steal且start_migratetype恒等于MIGRATE_MOVABLE且current_order大于order则转到:find_smallest |
2670 | 转到:do_steal |
2673 | 返回:false |
2675 | find_smallest : |
2678 | area等于伙伴系统空闲内存页[current_order]的地址 |
2681 | 如果fallback_mt不等于负1则退出 |
2691 | do_steal : |
2692 | page等于get_page_from_free_area(area, fallback_mt) |
2700 | 返回:true |
名称 | 描述 |
---|---|
__rmqueue | Do the hard work of removing an element from the buddy allocator.* Call me with the zone->lock already held. |
源代码转换工具 开放的插件接口 | X |
---|---|
支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |