Home
last modified time | relevance | path

Searched +full:interrupt +full:- +full:affinity (Results 1 – 25 of 368) sorted by relevance

12345678910>>...15

/Linux-v6.1/kernel/irq/
Dcpuhotplug.c1 // SPDX-License-Identifier: GPL-2.0
3 * Generic cpu hotunplug interrupt migration code copied from the
12 #include <linux/interrupt.h>
19 /* For !GENERIC_IRQ_EFFECTIVE_AFF_MASK this looks at general affinity mask */
27 * The cpumask_empty() check is a workaround for interrupt chips, in irq_needs_fixup()
28 * which do not implement effective affinity, but the architecture has in irq_needs_fixup()
29 * enabled the config switch. Use the general affinity mask instead. in irq_needs_fixup()
45 pr_warn("Eff. affinity %*pbl of IRQ %u contains only offline CPUs after offlining CPU %u\n", in irq_needs_fixup()
46 cpumask_pr_args(m), d->irq, cpu); in irq_needs_fixup()
58 const struct cpumask *affinity; in migrate_one_irq() local
[all …]
Dirqdesc.c1 // 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 …]
Dmanage.c1 // 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 …]
Dmsi.c1 // SPDX-License-Identifier: GPL-2.0
25 * msi_alloc_desc - Allocate an initialized msi_desc
28 * @affinity: Optional pointer to an affinity mask array size of @nvec
30 * If @affinity is not %NULL then an affinity array[@nvec] is allocated
31 * and the affinity masks and flags from @affinity are copied.
36 const struct irq_affinity_desc *affinity) in msi_alloc_desc() argument
43 desc->dev = dev; in msi_alloc_desc()
44 desc->nvec_used = nvec; in msi_alloc_desc()
45 if (affinity) { in msi_alloc_desc()
46 desc->affinity = kmemdup(affinity, nvec * sizeof(*desc->affinity), GFP_KERNEL); in msi_alloc_desc()
[all …]
Dproc.c1 // SPDX-License-Identifier: GPL-2.0
3 * Copyright (C) 1992, 1998-2004 Linus Torvalds, Ingo Molnar
12 #include <linux/interrupt.h>
22 * concurrent free of the interrupt descriptor. remove_proc_entry()
26 * We remove the proc entries first and then delete the interrupt
40 AFFINITY, enumerator
48 struct irq_desc *desc = irq_to_desc((long)m->private); in show_irq_affinity()
52 case AFFINITY: in show_irq_affinity()
54 mask = desc->irq_common_data.affinity; in show_irq_affinity()
56 if (irqd_is_setaffinity_pending(&desc->irq_data)) in show_irq_affinity()
[all …]
DKconfig1 # SPDX-License-Identifier: GPL-2.0-only
25 # Supports effective affinity mask
30 # Support for delayed migration from interrupt context
38 # Alpha specific irq affinity mechanism
42 # Interrupt injection mechanism
54 # Generic configurable interrupt chip implementation
59 # Generic irq_domain hw <--> linux irq number translation
74 # Support for obsolete non-mapping irq domains
89 # Generic MSI interrupt support
93 # Generic MSI hierarchical interrupt domain support
[all …]
Ddevres.c1 // SPDX-License-Identifier: GPL-2.0
3 #include <linux/interrupt.h>
22 free_irq(this->irq, this->dev_id); in devm_irq_release()
29 return this->irq == match->irq && this->dev_id == match->dev_id; in devm_irq_match()
33 * devm_request_threaded_irq - allocate an interrupt line for a managed device
34 * @dev: device to request interrupt for
35 * @irq: Interrupt line to allocate
37 * @thread_fn: function to be called in a threaded interrupt context. NULL
39 * @irqflags: Interrupt type flags
62 return -ENOMEM; in devm_request_threaded_irq()
[all …]
/Linux-v6.1/Documentation/devicetree/bindings/interrupt-controller/
Dapple,aic.yaml1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
3 ---
4 $id: http://devicetree.org/schemas/interrupt-controller/apple,aic.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
7 title: Apple Interrupt Controller
10 - Hector Martin <marcan@marcan.st>
13 The Apple Interrupt Controller is a simple interrupt controller present on
19 - Level-triggered hardware IRQs wired to SoC blocks
20 - Single mask bit per IRQ
21 - Per-IRQ affinity setting
[all …]
Darm,gic-v3.yaml1 # 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 <maz@kernel.org>
15 Software Generated Interrupts (SGI), and Locality-specific Peripheral
19 - $ref: /schemas/interrupt-controller.yaml#
24 - items:
25 - enum:
[all …]
/Linux-v6.1/include/linux/
Dirq.h1 /* 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 …]
Dinterrupt.h1 /* SPDX-License-Identifier: GPL-2.0 */
2 /* interrupt.h */
25 * linux/ioport.h to select the interrupt line behaviour. When
26 * requesting an interrupt without specifying a IRQF_TRIGGER, the
43 * IRQF_SHARED - allow sharing the irq among several devices
44 * IRQF_PROBE_SHARED - set by callers when they expect sharing mismatches to occur
45 * IRQF_TIMER - Flag to mark this interrupt as timer interrupt
46 * IRQF_PERCPU - Interrupt is per cpu
47 * IRQF_NOBALANCING - Flag to exclude this interrupt from irq balancing
48 * IRQF_IRQPOLL - Interrupt is used for polling (only the interrupt that is
[all …]
/Linux-v6.1/drivers/infiniband/hw/hfi1/
Daffinity.c1 // SPDX-License-Identifier: GPL-2.0 or BSD-3-Clause
3 * Copyright(c) 2015 - 2020 Intel Corporation.
8 #include <linux/interrupt.h>
12 #include "affinity.h"
35 cpumask_clear(&set->mask); in init_cpu_mask_set()
36 cpumask_clear(&set->used); in init_cpu_mask_set()
37 set->gen = 0; in init_cpu_mask_set()
43 if (cpumask_equal(&set->mask, &set->used)) { in _cpu_mask_set_gen_inc()
48 set->gen++; in _cpu_mask_set_gen_inc()
49 cpumask_clear(&set->used); in _cpu_mask_set_gen_inc()
[all …]
/Linux-v6.1/drivers/perf/
Darm_pmu_platform.c1 // 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 …]
/Linux-v6.1/block/
Dblk-mq-rdma.c1 // 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()
Dblk-mq-virtio.c1 // SPDX-License-Identifier: GPL-2.0
6 #include <linux/blk-mq.h>
7 #include <linux/blk-mq-virtio.h>
10 #include "blk-mq.h"
13 * blk_mq_virtio_map_queues - provide a default queue mapping for virtio device
16 * @first_vec: first interrupt vectors to use for queues (usually 0)
19 * interrupt vectors as @set has queues. It will then query the vector
20 * corresponding to each queue for it's affinity mask and built queue mapping
21 * that maps a queue to the CPUs that have irq affinity for the corresponding
30 if (!vdev->config->get_vq_affinity) in blk_mq_virtio_map_queues()
[all …]
/Linux-v6.1/Documentation/ia64/
Dirq-redir.rst2 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 …]
/Linux-v6.1/Documentation/devicetree/bindings/arm/
Dpmu.yaml1 # 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 - apple,firestorm-pmu
24 - apple,icestorm-pmu
[all …]
/Linux-v6.1/lib/
Dcpu_rmap.c1 // SPDX-License-Identifier: GPL-2.0-only
3 * cpu_rmap.c: CPU affinity reverse-map support
8 #include <linux/interrupt.h>
13 * objects with CPU affinities. This can be seen as a reverse-map of
14 * CPU affinity. However, we do not assume that the object affinities
21 * alloc_cpu_rmap - allocate CPU affinity reverse-map
39 rmap = kzalloc(obj_offset + size * sizeof(rmap->obj[0]), flags); in alloc_cpu_rmap()
43 kref_init(&rmap->refcount); in alloc_cpu_rmap()
44 rmap->obj = (void **)((char *)rmap + obj_offset); in alloc_cpu_rmap()
50 * any newly-hotplugged CPUs to have some object assigned. in alloc_cpu_rmap()
[all …]
/Linux-v6.1/drivers/irqchip/
Dirq-bcm7038-l1.c1 // SPDX-License-Identifier: GPL-2.0-only
3 * Broadcom BCM7038 style Level 1 interrupt controller driver
14 #include <linux/interrupt.h>
48 u8 affinity[MAX_WORDS * IRQS_PER_WORD]; member
83 return (0 * intc->n_words + word) * sizeof(u32); in reg_status()
89 return (1 * intc->n_words + word) * sizeof(u32); in reg_mask_status()
95 return (2 * intc->n_words + word) * sizeof(u32); in reg_mask_set()
101 return (3 * intc->n_words + word) * sizeof(u32); in reg_mask_clr()
128 cpu = intc->cpus[cpu_logical_map(smp_processor_id())]; in bcm7038_l1_irq_handle()
130 cpu = intc->cpus[0]; in bcm7038_l1_irq_handle()
[all …]
/Linux-v6.1/arch/powerpc/sysdev/xics/
Dxics-common.c1 // SPDX-License-Identifier: GPL-2.0-or-later
12 #include <linux/interrupt.h>
60 ireg = of_get_property(np, "ibm,ppc-interrupt-gserver#s", &ilen); in xics_update_irq_servers()
68 /* Global interrupt distribution server is specified in the last in xics_update_irq_servers()
69 * entry of "ibm,ppc-interrupt-gserver#s" property. Get the last in xics_update_irq_servers()
96 index = (1UL << xics_interrupt_server_size) - 1 - gserver; in xics_set_cpu_giq()
100 WARN(status < 0, "set-indicator(%d, %d, %u) returned %d\n", in xics_set_cpu_giq()
107 icp_ops->set_priority(LOWEST_PRIORITY); in xics_setup_cpu()
114 pr_err("Interrupt 0x%x (real) is invalid, disabling it.\n", vec); in xics_mask_unknown_vec()
118 xics_ics->mask_unknown(xics_ics, vec); in xics_mask_unknown_vec()
[all …]
/Linux-v6.1/arch/alpha/kernel/
Dsys_dp264.c1 // SPDX-License-Identifier: GPL-2.0
68 dim0 = &cchip->dim0.csr; in tsunami_update_irq_hw()
69 dim1 = &cchip->dim1.csr; in tsunami_update_irq_hw()
70 dim2 = &cchip->dim2.csr; in tsunami_update_irq_hw()
71 dim3 = &cchip->dim3.csr; in tsunami_update_irq_hw()
88 if (bcpu == 0) dimB = &cchip->dim0.csr; in tsunami_update_irq_hw()
89 else if (bcpu == 1) dimB = &cchip->dim1.csr; in tsunami_update_irq_hw()
90 else if (bcpu == 2) dimB = &cchip->dim2.csr; in tsunami_update_irq_hw()
91 else dimB = &cchip->dim3.csr; in tsunami_update_irq_hw()
103 cached_irq_mask |= 1UL << d->irq; in dp264_enable_irq()
[all …]
/Linux-v6.1/drivers/iommu/
Dhyperv-iommu.c1 // SPDX-License-Identifier: GPL-2.0
4 * Hyper-V stub IOMMU driver.
12 #include <linux/interrupt.h>
30 * According 82093AA IO-APIC spec , IO APIC has a 24-entry Interrupt
31 * Redirection Table. Hyper-V exposes one single IO-APIC and so define
42 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()
60 .name = "HYPERV-IR",
[all …]
/Linux-v6.1/arch/x86/kernel/apic/
Dvector.c1 // SPDX-License-Identifier: GPL-2.0-only
10 #include <linux/interrupt.h>
67 info->mask = mask; in init_irq_alloc_info()
83 while (irqd->parent_data) in apic_chip_data()
84 irqd = irqd->parent_data; in apic_chip_data()
86 return irqd->chip_data; in apic_chip_data()
93 return apicd ? &apicd->hw_irq_cfg : NULL; in irqd_cfg()
108 INIT_HLIST_NODE(&apicd->clist); in alloc_apic_chip_data()
124 apicd->hw_irq_cfg.vector = vector; in apic_update_irq_cfg()
125 apicd->hw_irq_cfg.dest_apicid = apic->calc_dest_apicid(cpu); in apic_update_irq_cfg()
[all …]
/Linux-v6.1/drivers/virtio/
Dvirtio_pci_common.h1 /* SPDX-License-Identifier: GPL-2.0-or-later */
5 * Virtio PCI driver - APIs for common functionality for all device versions
23 #include <linux/interrupt.h>
40 /* MSI-X vector (or none) */
53 /* Where to read and clear interrupt */
60 /* array of all queues for house-keeping */
63 /* MSI-X support */
72 /* Vectors allocated, excluding per-vq vectors if any */
90 /* Constants for MSI-X */
108 /* the config->del_vqs() implementation */
[all …]
/Linux-v6.1/arch/mips/sibyte/sb1250/
Dirq.c1 // SPDX-License-Identifier: GPL-2.0-or-later
8 #include <linux/interrupt.h>
26 * These are the routines that handle all the low level interrupt stuff.
27 * Actions handled here are: initialization of the interrupt map, requesting of
28 * interrupt lines by handlers, dispatching if interrupts to handlers, probing
29 * for interrupt lines
74 unsigned int irq = d->irq; in sb1250_set_affinity()
83 /* Protect against other affinity changers and IMR manipulation */ in sb1250_set_affinity()
114 unsigned int irq = d->irq; in disable_sb1250_irq()
121 unsigned int irq = d->irq; in enable_sb1250_irq()
[all …]

12345678910>>...15