函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:kernel\bpf\cpumap.c Create Date:2022-07-27 14:41:32
Last Modify:2020-03-12 14:18:49 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:cpu_map_alloc

函数原型:static struct bpf_map *cpu_map_alloc(union bpf_attr *attr)

返回类型:struct bpf_map

参数:

类型参数名称
union bpf_attr *attr
83  err等于负ENOMEM
87  如果非操作权限检查则返回:错误号
91  如果 max number of entries in a map 恒等于0或 size of key in bytes 不等于4或 size of value in bytes 不等于4或 BPF_MAP_CREATE related * flags defined above.按位与Specify numa node during map creation 的反则返回:错误号
95  cmap等于分配内存并置零
96  如果非cmap则返回:错误号
99  bpf_map_init_from_attr( & map, attr)
102  如果max_entries大于CPU数量
103  err等于负E2BIG
104  转到:free_cmap
108  cost等于max_entries乘*的长度
109  cost加等于sizeof(structlist_head)乘num_possible_cpus()
112  ret等于bpf_map_charge_init( & memory, cost)
113  如果ret
114  err等于ret
115  转到:free_cmap
118  flush_list等于alloc_percpu(structlist_head)
119  如果非flush_list则转到:free_charge
122  遍历可用CPU(cpu)
123  初始化链表头
126  Below members specific for map type 等于bpf_map_area_alloc(max_entries * *的长度, numa_node)
129  如果非 Below members specific for map type 则转到:free_percpu
132  返回:map
133  free_percpu :
134  释放内存
135  free_charge :
136  bpf_map_charge_finish( & memory)
137  free_cmap :
138  kfree(cmap)
139  返回:错误号