| /kernel/linux/linux-5.10/kernel/irq/ |
| D | cpuhotplug.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * Generic cpu hotunplug interrupt migration code copied from the 12 #include <linux/interrupt.h> 20 /* For !GENERIC_IRQ_EFFECTIVE_AFF_MASK this looks at general affinity mask */ 28 * The cpumask_empty() check is a workaround for interrupt chips, in irq_needs_fixup() 29 * which do not implement effective affinity, but the architecture has in irq_needs_fixup() 30 * enabled the config switch. Use the general affinity mask instead. in irq_needs_fixup() 46 pr_warn("Eff. affinity %*pbl of IRQ %u contains only offline CPUs after offlining CPU %u\n", in irq_needs_fixup() 47 cpumask_pr_args(m), d->irq, cpu); in irq_needs_fixup() 59 const struct cpumask *affinity; in migrate_one_irq() local [all …]
|
| D | irqdesc.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * Copyright (C) 1992, 1998-2006 Linus Torvalds, Ingo Molnar 4 * Copyright (C) 2005-2006, Thomas Gleixner, Russell King 6 * This file contains the interrupt descriptor management code. Detailed 7 * information is available in Documentation/core-api/genericirq.rst 13 #include <linux/interrupt.h> 15 #include <linux/radix-tree.h> 23 * lockdep: we want to handle all irq_desc locks as a single lock-class: 57 if (!zalloc_cpumask_var_node(&desc->irq_common_data.affinity, in alloc_masks() 59 return -ENOMEM; in alloc_masks() [all …]
|
| D | msi.c | 1 // SPDX-License-Identifier: GPL-2.0 8 * This file contains common code to support Message Signalled Interrupt for 21 * alloc_msi_entry - Allocate an initialize msi_entry 24 * @affinity: Optional pointer to an affinity mask array size of @nvec 26 * If @affinity is not NULL then an affinity array[@nvec] is allocated 27 * and the affinity masks and flags from @affinity are copied. 30 const struct irq_affinity_desc *affinity) in alloc_msi_entry() argument 38 INIT_LIST_HEAD(&desc->list); in alloc_msi_entry() 39 desc->dev = dev; in alloc_msi_entry() 40 desc->nvec_used = nvec; in alloc_msi_entry() [all …]
|
| D | manage.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * Copyright (C) 1992, 1998-2006 Linus Torvalds, Ingo Molnar 4 * Copyright (C) 2005-2006 Thomas Gleixner 15 #include <linux/interrupt.h> 51 while (irqd_irq_inprogress(&desc->irq_data)) in __synchronize_hardirq() 54 /* Ok, that indicated we're done: double-check carefully. */ in __synchronize_hardirq() 55 raw_spin_lock_irqsave(&desc->lock, flags); in __synchronize_hardirq() 56 inprogress = irqd_irq_inprogress(&desc->irq_data); in __synchronize_hardirq() 71 raw_spin_unlock_irqrestore(&desc->lock, flags); in __synchronize_hardirq() 78 * synchronize_hardirq - wait for pending hard IRQ handlers (on other CPUs) [all …]
|
| /kernel/linux/linux-4.19/kernel/irq/ |
| D | cpuhotplug.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * Generic cpu hotunplug interrupt migration code copied from the 12 #include <linux/interrupt.h> 18 /* For !GENERIC_IRQ_EFFECTIVE_AFF_MASK this looks at general affinity mask */ 26 * The cpumask_empty() check is a workaround for interrupt chips, in irq_needs_fixup() 27 * which do not implement effective affinity, but the architecture has in irq_needs_fixup() 28 * enabled the config switch. Use the general affinity mask instead. in irq_needs_fixup() 44 pr_warn("Eff. affinity %*pbl of IRQ %u contains only offline CPUs after offlining CPU %u\n", in irq_needs_fixup() 45 cpumask_pr_args(m), d->irq, cpu); in irq_needs_fixup() 57 const struct cpumask *affinity; in migrate_one_irq() local [all …]
|
| D | irqdesc.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * Copyright (C) 1992, 1998-2006 Linus Torvalds, Ingo Molnar 4 * Copyright (C) 2005-2006, Thomas Gleixner, Russell King 6 * This file contains the interrupt descriptor management code. Detailed 7 * information is available in Documentation/core-api/genericirq.rst 13 #include <linux/interrupt.h> 15 #include <linux/radix-tree.h> 23 * lockdep: we want to handle all irq_desc locks as a single lock-class: 57 if (!zalloc_cpumask_var_node(&desc->irq_common_data.affinity, in alloc_masks() 59 return -ENOMEM; in alloc_masks() [all …]
|
| D | msi.c | 1 // SPDX-License-Identifier: GPL-2.0 8 * This file contains common code to support Message Signalled Interrupt for 21 * alloc_msi_entry - Allocate an initialize msi_entry 24 * @affinity: Optional pointer to an affinity mask array size of @nvec 26 * If @affinity is not NULL then a an affinity array[@nvec] is allocated 27 * and the affinity masks from @affinity are copied. 30 alloc_msi_entry(struct device *dev, int nvec, const struct cpumask *affinity) in alloc_msi_entry() argument 38 INIT_LIST_HEAD(&desc->list); in alloc_msi_entry() 39 desc->dev = dev; in alloc_msi_entry() 40 desc->nvec_used = nvec; in alloc_msi_entry() [all …]
|
| D | manage.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * Copyright (C) 1992, 1998-2006 Linus Torvalds, Ingo Molnar 4 * Copyright (C) 2005-2006 Thomas Gleixner 15 #include <linux/interrupt.h> 50 while (irqd_irq_inprogress(&desc->irq_data)) in __synchronize_hardirq() 53 /* Ok, that indicated we're done: double-check carefully. */ in __synchronize_hardirq() 54 raw_spin_lock_irqsave(&desc->lock, flags); in __synchronize_hardirq() 55 inprogress = irqd_irq_inprogress(&desc->irq_data); in __synchronize_hardirq() 70 raw_spin_unlock_irqrestore(&desc->lock, flags); in __synchronize_hardirq() 77 * synchronize_hardirq - wait for pending hard IRQ handlers (on other CPUs) [all …]
|
| /kernel/linux/linux-4.19/arch/mips/loongson64/loongson-3/ |
| D | irq.c | 1 // SPDX-License-Identifier: GPL-2.0 4 #include <linux/interrupt.h> 15 unsigned int irq_cpu[16] = {[0 ... 15] = -1}; 19 int plat_set_irq_affinity(struct irq_data *d, const struct cpumask *affinity, in plat_set_irq_affinity() argument 25 /* I/O devices are connected on package-0 */ in plat_set_irq_affinity() 26 cpumask_copy(&new_affinity, affinity); in plat_set_irq_affinity() 27 for_each_cpu(cpu, affinity) in plat_set_irq_affinity() 32 return -EINVAL; in plat_set_irq_affinity() 34 cpumask_copy(d->common->affinity, &new_affinity); in plat_set_irq_affinity() 43 struct cpumask affinity; in ht_irqdispatch() local [all …]
|
| /kernel/linux/linux-5.10/include/linux/ |
| D | irq.h | 1 /* SPDX-License-Identifier: GPL-2.0 */ 10 * Thanks. --rmk 36 * Bits 0-7 are the same as the IRQF_* bits in linux/interrupt.h 38 * IRQ_TYPE_NONE - default, unspecified type 39 * IRQ_TYPE_EDGE_RISING - rising edge triggered 40 * IRQ_TYPE_EDGE_FALLING - falling edge triggered 41 * IRQ_TYPE_EDGE_BOTH - rising and falling edge triggered 42 * IRQ_TYPE_LEVEL_HIGH - high level triggered 43 * IRQ_TYPE_LEVEL_LOW - low level triggered 44 * IRQ_TYPE_LEVEL_MASK - Mask to filter out the level bits [all …]
|
| D | interrupt.h | 1 /* SPDX-License-Identifier: GPL-2.0 */ 2 /* interrupt.h */ 24 * linux/ioport.h to select the interrupt line behaviour. When 25 * requesting an interrupt without specifying a IRQF_TRIGGER, the 42 * IRQF_SHARED - allow sharing the irq among several devices 43 * IRQF_PROBE_SHARED - set by callers when they expect sharing mismatches to occur 44 * IRQF_TIMER - Flag to mark this interrupt as timer interrupt 45 * IRQF_PERCPU - Interrupt is per cpu 46 * IRQF_NOBALANCING - Flag to exclude this interrupt from irq balancing 47 * IRQF_IRQPOLL - Interrupt is used for polling (only the interrupt that is [all …]
|
| /kernel/linux/linux-4.19/include/linux/ |
| D | irq.h | 1 /* SPDX-License-Identifier: GPL-2.0 */ 10 * Thanks. --rmk 35 * Bits 0-7 are the same as the IRQF_* bits in linux/interrupt.h 37 * IRQ_TYPE_NONE - default, unspecified type 38 * IRQ_TYPE_EDGE_RISING - rising edge triggered 39 * IRQ_TYPE_EDGE_FALLING - falling edge triggered 40 * IRQ_TYPE_EDGE_BOTH - rising and falling edge triggered 41 * IRQ_TYPE_LEVEL_HIGH - high level triggered 42 * IRQ_TYPE_LEVEL_LOW - low level triggered 43 * IRQ_TYPE_LEVEL_MASK - Mask to filter out the level bits [all …]
|
| /kernel/linux/linux-5.10/drivers/infiniband/hw/hfi1/ |
| D | affinity.c | 2 * Copyright(c) 2015 - 2020 Intel Corporation. 24 * - Redistributions of source code must retain the above copyright 26 * - Redistributions in binary form must reproduce the above copyright 30 * - Neither the name of Intel Corporation nor the names of its 50 #include <linux/interrupt.h> 54 #include "affinity.h" 77 cpumask_clear(&set->mask); in init_cpu_mask_set() 78 cpumask_clear(&set->used); in init_cpu_mask_set() 79 set->gen = 0; in init_cpu_mask_set() 85 if (cpumask_equal(&set->mask, &set->used)) { in _cpu_mask_set_gen_inc() [all …]
|
| /kernel/linux/linux-4.19/drivers/infiniband/hw/hfi1/ |
| D | affinity.c | 2 * Copyright(c) 2015 - 2018 Intel Corporation. 24 * - Redistributions of source code must retain the above copyright 26 * - Redistributions in binary form must reproduce the above copyright 30 * - Neither the name of Intel Corporation nor the names of its 50 #include <linux/interrupt.h> 53 #include "affinity.h" 75 cpumask_clear(&set->mask); in init_cpu_mask_set() 76 cpumask_clear(&set->used); in init_cpu_mask_set() 77 set->gen = 0; in init_cpu_mask_set() 83 if (cpumask_equal(&set->mask, &set->used)) { in _cpu_mask_set_gen_inc() [all …]
|
| /kernel/linux/linux-5.10/drivers/iommu/ |
| D | hyperv-iommu.c | 1 // SPDX-License-Identifier: GPL-2.0 4 * Hyper-V stub IOMMU driver. 12 #include <linux/interrupt.h> 29 * According 82093AA IO-APIC spec , IO APIC has a 24-entry Interrupt 30 * Redirection Table. Hyper-V exposes one single IO-APIC and so define 41 struct irq_data *parent = data->parent_data; in hyperv_ir_set_affinity() 46 /* Return error If new irq affinity is out of ioapic_max_cpumask. */ in hyperv_ir_set_affinity() 48 return -EINVAL; in hyperv_ir_set_affinity() 50 ret = parent->chip->irq_set_affinity(parent, mask, force); in hyperv_ir_set_affinity() 54 entry = data->chip_data; in hyperv_ir_set_affinity() [all …]
|
| /kernel/linux/linux-5.10/Documentation/devicetree/bindings/interrupt-controller/ |
| D | arm,gic-v3.yaml | 1 # SPDX-License-Identifier: GPL-2.0 3 --- 4 $id: http://devicetree.org/schemas/interrupt-controller/arm,gic-v3.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 7 title: ARM Generic Interrupt Controller, version 3 10 - Marc Zyngier <marc.zyngier@arm.com> 15 Software Generated Interrupts (SGI), and Locality-specific Peripheral 19 - $ref: /schemas/interrupt-controller.yaml# 24 - items: 25 - enum: [all …]
|
| /kernel/linux/linux-4.19/Documentation/devicetree/bindings/interrupt-controller/ |
| D | arm,gic-v3.txt | 1 * ARM Generic Interrupt Controller, version 3 5 Software Generated Interrupts (SGI), and Locality-specific Peripheral 10 - compatible : should at least contain "arm,gic-v3". 11 - interrupt-controller : Identifies the node as an interrupt controller 12 - #interrupt-cells : Specifies the number of cells needed to encode an 13 interrupt source. Must be a single cell with a value of at least 3. 14 If the system requires describing PPI affinity, then the value must 17 The 1st cell is the interrupt type; 0 for SPI interrupts, 1 for PPI 20 The 2nd cell contains the interrupt number for the interrupt type. 21 SPI interrupts are in the range [0-987]. PPI interrupts are in the [all …]
|
| /kernel/linux/linux-4.19/Documentation/devicetree/bindings/arm/ |
| D | pmu.txt | 5 representation in the device tree should be done as under:- 9 - compatible : should be one of 10 "apm,potenza-pmu" 11 "arm,armv8-pmuv3" 12 "arm,cortex-a73-pmu" 13 "arm,cortex-a72-pmu" 14 "arm,cortex-a57-pmu" 15 "arm,cortex-a53-pmu" 16 "arm,cortex-a35-pmu" 17 "arm,cortex-a17-pmu" [all …]
|
| /kernel/linux/linux-4.19/drivers/perf/ |
| D | arm_pmu_platform.c | 1 // SPDX-License-Identifier: GPL-2.0 30 int ret = -ENODEV; in probe_current_pmu() 34 for (; info->init != NULL; info++) { in probe_current_pmu() 35 if ((cpuid & info->mask) != info->cpuid) in probe_current_pmu() 37 ret = info->init(pmu); in probe_current_pmu() 48 struct pmu_hw_events __percpu *hw_events = pmu->hw_events; in pmu_parse_percpu_irq() 50 ret = irq_get_percpu_devid_partition(irq, &pmu->supported_cpus); in pmu_parse_percpu_irq() 54 for_each_cpu(cpu, &pmu->supported_cpus) in pmu_parse_percpu_irq() 55 per_cpu(hw_events->irq, cpu) = irq; in pmu_parse_percpu_irq() 62 return !!of_find_property(node, "interrupt-affinity", NULL); in pmu_has_irq_affinity() [all …]
|
| /kernel/linux/linux-5.10/drivers/perf/ |
| D | arm_pmu_platform.c | 1 // SPDX-License-Identifier: GPL-2.0 31 int ret = -ENODEV; in probe_current_pmu() 35 for (; info->init != NULL; info++) { in probe_current_pmu() 36 if ((cpuid & info->mask) != info->cpuid) in probe_current_pmu() 38 ret = info->init(pmu); in probe_current_pmu() 49 struct pmu_hw_events __percpu *hw_events = pmu->hw_events; in pmu_parse_percpu_irq() 51 ret = irq_get_percpu_devid_partition(irq, &pmu->supported_cpus); in pmu_parse_percpu_irq() 55 for_each_cpu(cpu, &pmu->supported_cpus) in pmu_parse_percpu_irq() 56 per_cpu(hw_events->irq, cpu) = irq; in pmu_parse_percpu_irq() 63 return !!of_find_property(node, "interrupt-affinity", NULL); in pmu_has_irq_affinity() [all …]
|
| /kernel/linux/linux-4.19/Documentation/ia64/ |
| D | IRQ-redir.txt | 1 IRQ affinity on IA64 platforms 2 ------------------------------ 6 By writing to /proc/irq/IRQ#/smp_affinity the interrupt routing can be 8 that described in Documentation/IRQ-affinity.txt for i386 systems. 12 CPUs. Only the first non-zero bit is taken into account. 18 first non-zero bit is the selected CPU. This format has been kept for 21 Set the delivery mode of interrupt 41 to fixed and route the 31 gives the target CPU mask for the specified interrupt vector. If the CPU 32 mask is preceded by the character "r", the interrupt is redirectable 41 IO-SAPIC interrupts are initialized with CPU#0 as their default target [all …]
|
| /kernel/linux/linux-5.10/Documentation/ia64/ |
| D | irq-redir.rst | 2 IRQ affinity on IA64 platforms 8 By writing to /proc/irq/IRQ#/smp_affinity the interrupt routing can be 10 that described in Documentation/core-api/irq/irq-affinity.rst for i386 systems. 14 CPUs. Only the first non-zero bit is taken into account. 21 first non-zero bit is the selected CPU. This format has been kept for 24 Set the delivery mode of interrupt 41 to fixed and route the 38 gives the target CPU mask for the specified interrupt vector. If the CPU 39 mask is preceded by the character "r", the interrupt is redirectable 49 IO-SAPIC interrupts are initialized with CPU#0 as their default target 55 - minimal for an idle task, [all …]
|
| /kernel/linux/linux-5.10/block/ |
| D | blk-mq-rdma.c | 1 // SPDX-License-Identifier: GPL-2.0 5 #include <linux/blk-mq.h> 6 #include <linux/blk-mq-rdma.h> 10 * blk_mq_rdma_map_queues - provide a default queue mapping for rdma device 13 * @first_vec: first interrupt vectors to use for queues (usually 0) 16 * interrupt vetors as @set has queues. It will then query it's affinity mask 17 * and built queue mapping that maps a queue to the CPUs that have irq affinity 21 * @set->nr_hw_queues, or @dev does not provide an affinity mask for a 30 for (queue = 0; queue < map->nr_queues; queue++) { in blk_mq_rdma_map_queues() 36 map->mq_map[cpu] = map->queue_offset + queue; in blk_mq_rdma_map_queues()
|
| /kernel/linux/linux-5.10/Documentation/devicetree/bindings/arm/ |
| D | pmu.yaml | 1 # SPDX-License-Identifier: GPL-2.0 3 --- 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 10 - Mark Rutland <mark.rutland@arm.com> 11 - Will Deacon <will.deacon@arm.com> 16 representation in the device tree should be done as under:- 21 - enum: 22 - apm,potenza-pmu 23 - arm,armv8-pmuv3 # Only for s/w models 24 - arm,arm1136-pmu [all …]
|
| /kernel/linux/linux-4.19/block/ |
| D | blk-mq-rdma.c | 13 #include <linux/blk-mq.h> 14 #include <linux/blk-mq-rdma.h> 18 * blk_mq_rdma_map_queues - provide a default queue mapping for rdma device 21 * @first_vec: first interrupt vectors to use for queues (usually 0) 24 * interrupt vetors as @set has queues. It will then query it's affinity mask 25 * and built queue mapping that maps a queue to the CPUs that have irq affinity 29 * @set->nr_hw_queues, or @dev does not provide an affinity mask for a 38 for (queue = 0; queue < set->nr_hw_queues; queue++) { in blk_mq_rdma_map_queues() 44 set->mq_map[cpu] = queue; in blk_mq_rdma_map_queues()
|