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