Home
last modified time | relevance | path

Searched full:affinity (Results 1 – 25 of 464) sorted by relevance

12345678910>>...19

/Linux-v5.15/kernel/irq/
Dcpuhotplug.c19 /* For !GENERIC_IRQ_EFFECTIVE_AFF_MASK this looks at general affinity mask */
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()
58 const struct cpumask *affinity; in migrate_one_irq() local
64 * still in the radix tree. Also if the chip has no affinity setter, in migrate_one_irq()
76 * - Affinity mask does not include this CPU. in migrate_one_irq()
100 * mask, so the last change of the affinity does not get lost. If in migrate_one_irq()
102 * any online CPU, use the current affinity mask. in migrate_one_irq()
105 affinity = irq_desc_get_pending_mask(desc); in migrate_one_irq()
[all …]
Dirqdesc.c57 if (!zalloc_cpumask_var_node(&desc->irq_common_data.affinity, in alloc_masks()
64 free_cpumask_var(desc->irq_common_data.affinity); in alloc_masks()
74 free_cpumask_var(desc->irq_common_data.affinity); in alloc_masks()
82 const struct cpumask *affinity) in desc_smp_init() argument
84 if (!affinity) in desc_smp_init()
85 affinity = irq_default_affinity; in desc_smp_init()
86 cpumask_copy(desc->irq_common_data.affinity, affinity); in desc_smp_init()
100 desc_smp_init(struct irq_desc *desc, int node, const struct cpumask *affinity) { } in desc_smp_init() argument
104 const struct cpumask *affinity, struct module *owner) in desc_set_defaults() argument
127 desc_smp_init(desc, node, affinity); in desc_set_defaults()
[all …]
Dmsi.c25 * @affinity: Optional pointer to an affinity mask array size of @nvec
27 * If @affinity is not %NULL then an affinity array[@nvec] is allocated
28 * and the affinity masks and flags from @affinity are copied.
33 const struct irq_affinity_desc *affinity) in alloc_msi_entry() argument
44 if (affinity) { in alloc_msi_entry()
45 desc->affinity = kmemdup(affinity, in alloc_msi_entry()
46 nvec * sizeof(*desc->affinity), GFP_KERNEL); in alloc_msi_entry()
47 if (!desc->affinity) { in alloc_msi_entry()
58 kfree(entry->affinity); in free_msi_entry()
229 * msi_domain_set_affinity - Generic affinity setter function for MSI domains
[all …]
/Linux-v5.15/Documentation/arm64/
Dasymmetric-32bit.rst51 CPU affinity.
68 On a homogeneous system, the CPU affinity of a task is preserved across
71 affinity mask contains 64-bit-only CPUs. In this situation, the kernel
72 determines the new affinity mask as follows:
74 1. If the 32-bit-capable subset of the affinity mask is not empty,
75 then the affinity is restricted to that subset and the old affinity
84 affinity of the task is then changed to match the 32-bit-capable
87 3. On failure (i.e. out of memory), the affinity is changed to the set
91 invalidate the affinity mask saved in (1) and attempt to restore the CPU
92 affinity of the task using the saved mask if it was previously valid.
[all …]
/Linux-v5.15/lib/
Dcpu_rmap.c3 * cpu_rmap.c: CPU affinity reverse-map support
14 * CPU affinity. However, we do not assume that the object affinities
21 * alloc_cpu_rmap - allocate CPU affinity reverse-map
150 * cpu_rmap_update - update CPU rmap following a change of object affinity
152 * @index: Index of object whose affinity changed
153 * @affinity: New CPU affinity of object
156 const struct cpumask *affinity) in cpu_rmap_update() argument
176 /* Set distance to 0 for all CPUs in the new affinity mask. in cpu_rmap_update()
179 for_each_cpu(cpu, affinity) { in cpu_rmap_update()
211 /* Glue between IRQ affinity notifiers and CPU rmaps */
[all …]
/Linux-v5.15/tools/virtio/ringtest/
Drun-on-all.sh19 echo "GUEST AFFINITY $cpu"
20 "$@" --host-affinity $HOST_AFFINITY --guest-affinity $cpu
23 echo "NO GUEST AFFINITY"
24 "$@" --host-affinity $HOST_AFFINITY
25 echo "NO AFFINITY"
/Linux-v5.15/drivers/net/ethernet/mellanox/mlx5/core/
Dpci_irq.c146 /* free_irq requires that affinity and rmap will be cleared in irq_release()
295 struct cpumask *affinity) in irq_pool_create_irq() argument
308 cpumask_copy(irq->mask, affinity); in irq_pool_create_irq()
313 /* looking for the irq with the smallest refcount and the same affinity */
315 struct cpumask *affinity) in irq_pool_find_least_loaded() argument
325 if (!cpumask_equal(iter->mask, affinity)) in irq_pool_find_least_loaded()
335 /* requesting an irq from a given pool according to given affinity */
337 struct cpumask *affinity) in irq_pool_request_affinity() argument
342 least_loaded_irq = irq_pool_find_least_loaded(pool, affinity); in irq_pool_request_affinity()
346 new_irq = irq_pool_create_irq(pool, affinity); in irq_pool_request_affinity()
[all …]
/Linux-v5.15/drivers/infiniband/hw/hfi1/
Daffinity.h37 /* Initialize driver affinity data */
40 * Set IRQ affinity to a CPU. The function will determine the
41 * CPU and set the affinity to it.
46 * Remove the IRQ's CPU affinity. This function also updates
52 * Determine a CPU affinity for a user process, if the process does not
53 * have an affinity set yet.
77 struct mutex lock; /* protects affinity nodes */
Daffinity.c13 #include "affinity.h"
146 * The real cpu mask is part of the affinity struct but it has to be in node_affinity_init()
387 hfi1_cdbg(AFFINITY, in _dev_comp_vect_mappings_destroy()
437 hfi1_cdbg(AFFINITY, in _dev_comp_vect_mappings_create()
513 … "Number of kernel receive queues is too large for completion vector affinity to be effective\n"); in _dev_comp_vect_cpu_mask_init()
542 hfi1_cdbg(AFFINITY, in _dev_comp_vect_cpu_mask_init()
543 "[%s] Completion vector affinity CPU set(s) %*pbl", in _dev_comp_vect_cpu_mask_init()
582 * Interrupt affinity.
607 * If this is the first time this NUMA node's affinity is used, in hfi1_dev_affinity_init()
608 * create an entry in the global affinity structure and initialize it. in hfi1_dev_affinity_init()
[all …]
/Linux-v5.15/tools/perf/util/
Daffinity.c2 /* Manage affinity to optimize IPIs inside the kernel perf API. */
10 #include "affinity.h"
24 int affinity__setup(struct affinity *a) in affinity__setup()
44 * It is more efficient to change perf's affinity to the target
48 void affinity__set(struct affinity *a, int cpu) in affinity__set()
57 * We ignore errors because affinity is just an optimization. in affinity__set()
65 void affinity__cleanup(struct affinity *a) in affinity__cleanup()
Daffinity.h7 struct affinity { struct
13 void affinity__cleanup(struct affinity *a); argument
14 void affinity__set(struct affinity *a, int cpu);
15 int affinity__setup(struct affinity *a);
Dmmap.c97 static int perf_mmap__aio_bind(struct mmap *map, int idx, int cpu, int affinity) in perf_mmap__aio_bind() argument
105 if (affinity != PERF_AFFINITY_SYS && cpu__max_node() > 1) { in perf_mmap__aio_bind()
141 int cpu __maybe_unused, int affinity __maybe_unused) in perf_mmap__aio_bind()
175 ret = perf_mmap__aio_bind(map, i, map->core.cpu, mp->affinity); in perf_mmap__aio_mmap()
265 if (mp->affinity == PERF_AFFINITY_NODE && cpu__max_node() > 1) in perf_mmap__setup_affinity_mask()
267 else if (mp->affinity == PERF_AFFINITY_CPU) in perf_mmap__setup_affinity_mask()
281 if (mp->affinity != PERF_AFFINITY_SYS && in mmap__mmap()
283 pr_debug2("failed to alloc mmap affinity mask, error %d\n", in mmap__mmap()
/Linux-v5.15/tools/testing/selftests/rseq/
Dbasic_test.c18 cpu_set_t affinity, test_affinity; in test_cpu_pointer() local
21 sched_getaffinity(0, sizeof(affinity), &affinity); in test_cpu_pointer()
24 if (CPU_ISSET(i, &affinity)) { in test_cpu_pointer()
35 sched_setaffinity(0, sizeof(affinity), &affinity); in test_cpu_pointer()
/Linux-v5.15/tools/power/cpupower/bench/
Dsystem.c67 * sets cpu affinity for the process
69 * @param cpu cpu# to which the affinity should be set
72 * @retval -1 when setting the affinity failed
82 dprintf("set affinity to cpu #%u\n", cpu); in set_cpu_affinity()
86 fprintf(stderr, "warning: unable to set cpu affinity\n"); in set_cpu_affinity()
146 * sets up the cpu affinity and scheduler priority
155 printf("set cpu affinity to cpu #%u\n", config->cpu); in prepare_system()
/Linux-v5.15/include/linux/
Dcpu_rmap.h6 * cpu_rmap.c: CPU affinity reverse-map support
16 * struct cpu_rmap - CPU affinity reverse-map
22 * based on affinity masks
40 const struct cpumask *affinity);
53 * alloc_irq_cpu_rmap - allocate CPU affinity reverse-map for IRQs
Dirq.h59 * it from affinity setting
66 * IRQ_NO_BALANCING - Interrupt cannot be balanced (affinity set)
117 * IRQ_SET_MASK_OK - OK, core updates irq_common_data.affinity
118 * IRQ_SET_MASK_NOCPY - OK, chip did update irq_common_data.affinity
138 * @affinity: IRQ affinity on SMP. If this is an IPI
141 * @effective_affinity: The effective IRQ affinity on SMP as some irq
143 * A subset of @affinity.
145 * @ipi_offset: Offset of first IPI target cpu in @affinity. Optional.
154 cpumask_var_t affinity; member
194 * IRQD_SETAFFINITY_PENDING - Affinity setting is pending
[all …]
/Linux-v5.15/tools/testing/selftests/bpf/
Dbench.c19 .affinity = false,
126 { "affinity", 'a', NULL, 0, "Set consumer/producer thread affinity"},
127 { "prod-affinity", ARG_PROD_AFFINITY_SET, "CPUSET", 0,
128 "Set of CPUs for producer threads; implies --affinity"},
129 { "cons-affinity", ARG_CONS_AFFINITY_SET, "CPUSET", 0,
130 "Set of CPUs for consumer threads; implies --affinity"},
181 env.affinity = true; in parse_arg()
184 env.affinity = true; in parse_arg()
192 env.affinity = true; in parse_arg()
273 fprintf(stderr, "setting affinity to CPU #%d failed: %d\n", in set_thread_affinity()
[all …]
/Linux-v5.15/drivers/md/
Ddm-ps-io-affinity.c12 #define DM_MSG_PREFIX "multipath io-affinity"
52 *error = "io-affinity ps: invalid number of arguments"; in ioa_add_path()
58 *error = "io-affinity ps: Error allocating path context"; in ioa_add_path()
67 *error = "io-affinity ps: Error allocating cpumask context"; in ioa_add_path()
74 *error = "io-affinity ps: invalid cpumask"; in ioa_add_path()
97 *error = "io-affinity ps: No new/valid CPU mapping found"; in ioa_add_path()
239 .name = "io-affinity",
/Linux-v5.15/arch/mips/kernel/
Dmips-mt-fpaff.c20 * CPU mask used to set process affinity for MT VPEs/TCs with FPUs
30 * FPU affinity with the user's requested processor affinity.
63 * mipsmt_sys_sched_setaffinity - set the cpu affinity of a process
155 * mipsmt_sys_sched_getaffinity - get the cpu affinity of a process
214 printk(KERN_DEBUG "FPU Affinity set after %ld emulations\n", in mt_fp_affinity_init()
/Linux-v5.15/arch/arm64/kernel/
Dsetup.c102 * smp_build_mpidr_hash - Pre-compute shifts required at each affinity
109 u32 i, affinity, fs[4], bits[4], ls; in smp_build_mpidr_hash() local
113 * not contribute to affinity levels, ie they never toggle. in smp_build_mpidr_hash()
119 * Find and stash the last and first bit set at all affinity levels to in smp_build_mpidr_hash()
123 affinity = MPIDR_AFFINITY_LEVEL(mask, i); in smp_build_mpidr_hash()
127 * to express the affinity level. in smp_build_mpidr_hash()
129 ls = fls(affinity); in smp_build_mpidr_hash()
130 fs[i] = affinity ? ffs(affinity) - 1 : 0; in smp_build_mpidr_hash()
135 * significant bits at each affinity level and by shifting in smp_build_mpidr_hash()
/Linux-v5.15/drivers/perf/
Darm_pmu_platform.c63 return !!of_find_property(node, "interrupt-affinity", NULL); in pmu_has_irq_affinity()
72 * If we don't have an interrupt-affinity property, we guess irq in pmu_parse_irq_affinity()
73 * affinity matches our logical CPU order, as we used to assume. in pmu_parse_irq_affinity()
79 dn = of_parse_phandle(dev->of_node, "interrupt-affinity", i); in pmu_parse_irq_affinity()
81 dev_warn(dev, "failed to parse interrupt-affinity[%d]\n", i); in pmu_parse_irq_affinity()
125 dev_warn(dev, "no interrupt-affinity property, guessing.\n"); in pmu_parse_irqs()
/Linux-v5.15/drivers/gpu/drm/amd/amdkfd/
Dkfd_crat.h85 * ComputeUnit Affinity structure and definitions
120 * HSA Memory Affinity structure and definitions
145 * HSA Cache Affinity structure and definitions
174 * HSA TLB Affinity structure and definitions
209 * HSA CCompute/APU Affinity structure and definitions
228 * HSA IO Link Affinity structure and definitions
/Linux-v5.15/Documentation/core-api/irq/
Dirq-affinity.rst2 SMP IRQ affinity
14 IRQ affinity then the value will not change from the default of all cpus.
16 /proc/irq/default_smp_affinity specifies default affinity mask that applies
17 to all non-active IRQs. Once IRQ is allocated/activated its affinity bitmask
/Linux-v5.15/drivers/irqchip/
Dirq-bcm7038-l1.c51 u8 affinity[MAX_WORDS * IRQS_PER_WORD]; member
183 __bcm7038_l1_unmask(d, intc->affinity[d->hwirq]); in bcm7038_l1_unmask()
193 __bcm7038_l1_mask(d, intc->affinity[d->hwirq]); in bcm7038_l1_mask()
211 was_disabled = !!(intc->cpus[intc->affinity[hw]]->mask_cache[word] & in bcm7038_l1_set_affinity()
213 __bcm7038_l1_mask(d, intc->affinity[hw]); in bcm7038_l1_set_affinity()
214 intc->affinity[hw] = first_cpu; in bcm7038_l1_set_affinity()
231 /* This CPU was not on the affinity mask */ in bcm7038_l1_cpu_offline()
237 * Multiple CPU affinity, remove this CPU from the affinity in bcm7038_l1_cpu_offline()
/Linux-v5.15/drivers/iommu/
Dhyperv-iommu.c46 /* Return error If new irq affinity is out of ioapic_max_cpumask. */ in hyperv_ir_set_affinity()
90 * Hypver-V IO APIC irq affinity should be in the scope of in hyperv_irq_remapping_alloc()
94 cpumask_copy(desc->irq_common_data.affinity, &ioapic_max_cpumask); in hyperv_irq_remapping_alloc()
163 * max cpu affinity for IOAPIC irqs. Scan cpu 0-255 and set cpu in hyperv_prepare_irq_remapping()
197 struct cpumask *affinity; in hyperv_root_ir_compose_msi_msg() local
204 affinity = irq_data_get_effective_affinity_mask(irq_data); in hyperv_root_ir_compose_msi_msg()
205 cpu = cpumask_first_and(affinity, cpu_online_mask); in hyperv_root_ir_compose_msi_msg()

12345678910>>...19