函数逻辑报告 |
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 插件可实现:逻辑报告 代码生成和批量转换代码 |