函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:kernel\irq\cpuhotplug.c Create Date:2022-07-27 11:15:16
Last Modify:2020-03-17 14:50:00 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:migrate_one_irq

函数原型:static bool migrate_one_irq(struct irq_desc *desc)

返回类型:bool

参数:

类型参数名称
struct irq_desc *desc
54  d等于irq_desc_get_irq_data(desc)
55  chip等于irq_data_get_irq_chip(d)
56  maskchip等于非irq_can_move_pcntxt(d)且非irqd_irq_masked(d)
58  bool brokeaff = false
66  如果非chip或非设置SMP环境CPU关系
67  pr_debug("IRQ %u: Unable to migrate away\n", 中断号)
68  返回:false
80  如果irqd_is_per_cpu(d)或非irqd_is_started(d)或非For !GENERIC_IRQ_EFFECTIVE_AFF_MASK this looks at general affinity mask
85  q_fixup_move_pending - Cleanup irq move pending from a dying CPU*@desc: Interrupt descpriptor to clean up*@force_clear: If set clear the move pending bit unconditionally
86  返回:false
95  irq_force_complete_move(desc)
103  如果q_fixup_move_pending - Cleanup irq move pending from a dying CPU*@desc: Interrupt descpriptor to clean up*@force_clear: If set clear the move pending bit unconditionallyaffinity等于irq_desc_get_pending_mask(desc)
105  否则affinity等于irq_data_get_affinity_mask(d)
109  如果maskchip中断屏蔽中断屏蔽(d)
112  如果cpumask_any_and - pick a "random" cpu from *mask1 & *mask2*@mask1: the first input cpumask*@mask2: the second input cpumask* Returns >= nr_cpu_ids if no cpus set.(affinity, cpu_online_mask)大于等于nr_cpu_ids
117  如果irqd_affinity_is_managed(d)则
120  返回:false
122  affinity等于cpu_online_mask
123  brokeaff = true
131  err等于irq_do_set_affinity(d, affinity, false)
132  如果err
133  pr_warn_ratelimited("IRQ%u: set affinity failed(%d).\n", 中断号, err)
135  brokeaff = false
138  如果maskchip开启中断开启中断(d)
141  返回:brokeaff
调用者
名称描述
irq_migrate_all_off_this_cpuq_migrate_all_off_this_cpu - Migrate irqs away from offline cpu* The current CPU has been marked offline