函数逻辑报告 | 
Source Code:kernel\irq\affinity.c | 
Create Date:2022-07-27 11:16:19 | 
| Last Modify:2020-03-12 14:18:49 | Copyright©Brick | 
| 首页 | 函数Tree | 
| 注解内核,赢得工具 | 下载SCCT | English | 
函数名称:ld affinity in two stages:* 1) spread present CPU on these vectors* 2) spread other possible CPUs on these vectors
函数原型:static int irq_build_affinity_masks(unsigned int startvec, unsigned int numvecs, unsigned int firstvec, struct irq_affinity_desc *masks)
返回类型:int
参数:
| 类型 | 参数 | 名称 | 
|---|---|---|
| unsigned int | startvec | |
| unsigned int | numvecs | |
| unsigned int | firstvec | |
| struct irq_affinity_desc * | masks | 
| 342 | curvec等于startvec, nr_present等于0, nr_others等于0 | 
| 347 | 如果非zalloc_cpumask_var( & nmsk, GFP_KERNEL)则返回:ret | 
| 350 | 如果非zalloc_cpumask_var( & npresmsk, GFP_KERNEL)则转到:fail_nmsk | 
| 354 | 如果非node_to_cpumask则转到:fail_npresmsk | 
| 358 | get_online_cpus() | 
| 362 | ret等于__irq_build_affinity_masks(curvec, numvecs, firstvec, node_to_cpumask, cpu_present_mask, nmsk, masks) | 
| 365 | 如果ret小于0则转到:fail_build_affinity | 
| 367 | nr_present等于ret | 
| 375 | 如果nr_present大于等于numvecs则curvec等于firstvec | 
| 377 | 否则curvec等于firstvec加nr_present | 
| 380 | ret等于__irq_build_affinity_masks(curvec, numvecs, firstvec, node_to_cpumask, npresmsk, nmsk, masks) | 
| 386 | fail_build_affinity : | 
| 387 | put_online_cpus() | 
| 389 | 如果ret大于等于0则WARN_ON(nr_present + nr_others < numvecs) | 
| 394 | fail_npresmsk : | 
| 395 | 释放CPU掩码 | 
| 397 | fail_nmsk : | 
| 398 | 释放CPU掩码 | 
| 名称 | 描述 | 
|---|---|
| irq_create_affinity_masks | q_create_affinity_masks - Create affinity masks for multiqueue spreading*@nvecs: The total number of vectors*@affd: Description of the affinity requirements* Returns the irq_affinity_desc pointer or NULL if allocation failed. | 
| 源代码转换工具 开放的插件接口  | X | 
|---|---|
| 支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码  |