Function report |
Source Code:kernel\irq\affinity.c |
Create Date:2022-07-28 10:16:00 |
| Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
| home page | Tree |
| Annotation kernel can get tool activity | Download SCCT | Chinese |
Name:ld affinity in two stages:* 1) spread present CPU on these vectors* 2) spread other possible CPUs on these vectors
Proto:static int irq_build_affinity_masks(unsigned int startvec, unsigned int numvecs, unsigned int firstvec, struct irq_affinity_desc *masks)
Type:int
Parameter:
| Type | Parameter | Name |
|---|---|---|
| unsigned int | startvec | |
| unsigned int | numvecs | |
| unsigned int | firstvec | |
| struct irq_affinity_desc * | masks |
| 342 | curvec = startvec , nr_present = 0 , nr_others = 0 |
| 347 | If Not zalloc_cpumask_var( & nmsk, GFP_KERNEL) Then Return ret |
| 350 | If Not zalloc_cpumask_var( & npresmsk, GFP_KERNEL) Then Go to fail_nmsk |
| 353 | node_to_cpumask = alloc_node_to_cpumask() |
| 354 | If Not node_to_cpumask Then Go to fail_npresmsk |
| 358 | get_online_cpus() |
| 362 | ret = __irq_build_affinity_masks(curvec, numvecs, firstvec, node_to_cpumask, cpu_present_mask, nmsk, masks) |
| 365 | If ret < 0 Then Go to fail_build_affinity |
| 367 | nr_present = ret |
| 375 | If nr_present >= numvecs Then curvec = firstvec |
| 377 | Else 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 | If ret >= 0 Then WARN_ON(nr_present + nr_others < numvecs) |
| 394 | fail_npresmsk : |
| 395 | free_cpumask_var(npresmsk) |
| 397 | fail_nmsk : |
| 398 | free_cpumask_var(nmsk) |
| Name | Describe |
|---|---|
| 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. |
| Source code conversion tool public plug-in interface | X |
|---|---|
| Support c/c++/esqlc/java Oracle/Informix/Mysql Plug-in can realize: logical Report Code generation and batch code conversion |