Function report

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:kernel\irq\cpuhotplug.c Create Date:2022-07-28 10:14:57
Last Modify:2020-03-17 14:50:00 Copyright©Brick
home page Tree
Annotation kernel can get tool activityDownload SCCTChinese

Name:migrate_one_irq

Proto:static bool migrate_one_irq(struct irq_desc *desc)

Type:bool

Parameter:

TypeParameterName
struct irq_desc *desc
54  d = irq_desc_get_irq_data(desc)
55  chip = irq_data_get_irq_chip(d)
56  maskchip = Not irq_can_move_pcntxt(d) && Not irqd_irq_masked(d)
58  bool brokeaff = false
66  If Not chip || Not irq_set_affinity Then
67  pr_debug("IRQ %u: Unable to migrate away\n", irq)
68  Return false
80  If irqd_is_per_cpu(d) || Not irqd_is_started(d) || Not For !GENERIC_IRQ_EFFECTIVE_AFF_MASK this looks at general affinity mask Then
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  Return false
95  irq_force_complete_move(desc)
103  If 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 Then affinity = irq_desc_get_pending_mask(desc)
105  Else affinity = irq_data_get_affinity_mask(d)
109  If maskchip && irq_mask Then irq_mask(d)
112  If 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 Then
117  If irqd_affinity_is_managed(d) Then
120  Return false
122  affinity = cpu_online_mask
123  brokeaff = true
131  err = irq_do_set_affinity(d, affinity, false)
132  If err Then
133  pr_warn_ratelimited("IRQ%u: set affinity failed(%d).\n", irq, err)
135  brokeaff = false
138  If maskchip && irq_unmask Then irq_unmask(d)
141  Return brokeaff
Caller
NameDescribe
irq_migrate_all_off_this_cpuq_migrate_all_off_this_cpu - Migrate irqs away from offline cpu* The current CPU has been marked offline