函数逻辑报告 |
Source Code:mm\percpu.c |
Create Date:2022-07-27 15:52:30 |
Last Modify:2022-05-23 13:52:24 | Copyright©Brick |
首页 | 函数Tree |
注解内核,赢得工具 | 下载SCCT | English |
函数名称:pcpu_setup_first_chunk - initialize the first percpu chunk*@ai: pcpu_alloc_info describing how to percpu area is shaped*@base_addr: mapped address* Initialize the first percpu chunk which contains the kernel static* percpu area
函数原型:void __init pcpu_setup_first_chunk(const struct pcpu_alloc_info *ai, void *base_addr)
返回类型:void
参数:
类型 | 参数 | 名称 |
---|---|---|
const struct pcpu_alloc_info * | ai | |
void * | base_addr |
2317 | alloc_size等于 0 if grouping unnecessary 乘group_offsets[0]的长度 |
2319 | 如果非group_offsets则panic - halt the system*@fmt: The text string to print* Display a message, then perform cleanups.* This function never returns. |
2323 | alloc_size等于 0 if grouping unnecessary 乘group_sizes[0]的长度 |
2325 | 如果非group_sizes则panic - halt the system*@fmt: The text string to print* Display a message, then perform cleanups.* This function never returns. |
2329 | alloc_size等于CPU数量乘unit_map[0]的长度 |
2331 | 如果非unit_map则panic - halt the system*@fmt: The text string to print* Display a message, then perform cleanups.* This function never returns. |
2335 | alloc_size等于CPU数量乘unit_off[0]的长度 |
2337 | 如果非unit_off则panic - halt the system*@fmt: The text string to print* Display a message, then perform cleanups.* This function never returns. |
2345 | pcpu_high_unit_cpu等于CPU数量 |
2347 | 以group小于 0 if grouping unnecessary 循环 |
2350 | group_offsets[group]等于 base address offset |
2351 | group_sizes[group]等于 aligned # of units 乘unit_size |
2353 | 以i小于 aligned # of units 循环 |
2363 | unit_off[cpu]等于 base address offset 加i乘unit_size |
2374 | pcpu_nr_units等于unit |
2385 | pcpu_group_sizes等于group_sizes |
2386 | pcpu_unit_map等于unit_map |
2387 | pcpu_unit_offsets等于unit_off |
2392 | pcpu_atom_size等于atom_size |
2393 | pcpu_chunk_struct_size等于sizeof(structpcpu_chunk)加BITS_TO_LONGS(pcpu_unit_pages)乘sizeof(unsignedlong) |
2396 | pcpu_stats_save_ai(ai) |
2403 | pcpu_slot等于memblock_alloc(pcpu_nr_slots * pcpu_slot[0]的长度, SMP_CACHE_BYTES) |
2405 | 如果非pcpu_slot则panic - halt the system*@fmt: The text string to print* Display a message, then perform cleanups.* This function never returns. |
2408 | 以i小于pcpu_nr_slots循环初始化链表头 |
2430 | tmp_addr等于base_addr加static_size |
2431 | map_size等于如果reserved_size否则dyn_size |
2435 | 如果reserved_size则 |
2445 | The first chunk which always exists. Note that unlike other* chunks, this one can be allocated and mapped in several different* ways and thus often doesn't live in the vmalloc area.等于chunk |
2446 | The number of empty populated pages, protected by pcpu_lock. The* reserved chunk doesn't contribute to the count.等于 # of empty populated pages |
2452 | pcpu_stats_chunk_alloc() |
名称 | 描述 |
---|---|
setup_per_cpu_areas | UP percpu area setup.* UP always uses km-based percpu allocator with identity mapping.* Static percpu variables are indistinguishable from the usual static* variables and don't require any special preparation. |
源代码转换工具 开放的插件接口 | X |
---|---|
支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |