函数逻辑报告 | 
Source Code:kernel\bpf\cpumap.c | 
Create Date:2022-07-27 14:41:51 | 
| Last Modify:2020-03-12 14:18:49 | Copyright©Brick | 
| 首页 | 函数Tree | 
| 注解内核,赢得工具 | 下载SCCT | English | 
函数名称:__cpu_map_entry_alloc
函数原型:static struct bpf_cpu_map_entry *__cpu_map_entry_alloc(u32 qsize, u32 cpu, int map_id)
返回类型:struct bpf_cpu_map_entry
参数:
| 类型 | 参数 | 名称 | 
|---|---|---|
| u32 | qsize | |
| u32 | cpu | |
| int | map_id | 
| 343 | numa等于cpu_to_node(cpu) | 
| 345 | rcpu等于根据内存节点分配内存 | 
| 346 | 如果非rcpu则返回:NULL | 
| 350 | XDP can run multiple RX-ring queues, need __percpu enqueue store 等于__alloc_percpu_gfp( XDP can run multiple RX-ring queues, need __percpu enqueue store 的长度, *的长度, gfp) | 
| 365 | err等于ptr_ring_init( Queue with potential multi-producers, and single-consumer kthread , qsize, gfp) | 
| 366 | 如果err则转到:free_queue | 
| 369 | kthread CPU and map index 等于cpu | 
| 370 | Back reference to map 等于map_id | 
| 376 | 如果是错误则转到:free_ptr_ring | 
| 379 | get_cpu_map_entry(rcpu) | 
| 380 | get_cpu_map_entry(rcpu) | 
| 384 | 唤醒中断线程 | 
| 386 | 返回:rcpu | 
| 388 | free_ptr_ring : | 
| 390 | free_queue : | 
| 392 | free_bulkq : | 
| 393 | 释放内存 | 
| 394 | free_rcu : | 
| 396 | 返回:NULL | 
| 名称 | 描述 | 
|---|---|
| cpu_map_update_elem | 
| 源代码转换工具 开放的插件接口  | X | 
|---|---|
| 支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码  |