函数逻辑报告 |
Source Code:mm\slab.c |
Create Date:2022-07-27 17:19:15 |
Last Modify:2022-05-23 17:02:55 | Copyright©Brick |
首页 | 函数Tree |
注解内核,赢得工具 | 下载SCCT | English |
函数名称:Fallback function if there was no memory available and no objects on a* certain node and fall back is permitted. First we scan all the* available node for available objects. If that fails then we* perform an allocation without specifying a node
函数原型:static void *fallback_alloc(struct kmem_cache *cache, gfp_t flags)
返回类型:void
参数:
类型 | 参数 | 名称 |
---|---|---|
struct kmem_cache * | cache | |
gfp_t | flags |
3157 | high_zoneidx等于gfp_zone(flags) |
3158 | void * obj = NULL |
3163 | 如果flags按位与__GFP_THISNODE则返回:NULL |
3166 | retry_cpuset : |
3170 | retry : |
3176 | nid等于zone_to_nid(zone) |
3178 | 如果cpuset_zone_allowed(zone, flags)且get_node(cache, nid)且free_objects则 |
3188 | 如果非obj则 |
3195 | page等于Grow (by 1) the number of slabs within a cache. This is called by* kmem_cache_alloc() when there are no active objs left in a cache. |
3196 | cache_grow_end(cache, page) |
3197 | 如果page则 |
3198 | nid等于page_to_nid(page) |
3211 | 如果此条件成立可能性小(为编译器优化)(!obj && read_mems_allowed_retry(cpuset_mems_cookie))则转到:retry_cpuset |
3213 | 返回:obj |
名称 | 描述 |
---|---|
____cache_alloc_node | A interface to enable slab creation on nodeid |
slab_alloc_node |
源代码转换工具 开放的插件接口 | X |
---|---|
支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |