/linux/kernel/irq/ |
H A D | cpuhotplug.c | 19 /* 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() 84 * - 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 …]
|
H A D | irqdesc.c | 57 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() 101 free_cpumask_var(desc->irq_common_data.affinity); in free_masks() 111 desc_smp_init(struct irq_desc *desc, int node, const struct cpumask *affinity) { } in desc_smp_init() argument 116 const struct cpumask *affinity, struct module *owner) in desc_set_defaults() argument [all …]
|
H A D | affinity.c | 19 * irq_create_affinity_masks - Create affinity masks for multiqueue spreading 21 * @affd: Description of the affinity requirements 63 /* Fill out vectors at the beginning that don't need affinity */ in irq_create_affinity_masks() 69 * have multiple sets, build each sets affinity mask separately. in irq_create_affinity_masks() 88 /* Fill out vectors at the end that don't need affinity */ in irq_create_affinity_masks() 107 * @affd: Description of the affinity requirements
|
H A D | manage.c | 154 * irq_can_set_affinity - Check if the affinity of a given irq can be set 164 * irq_can_set_affinity_usr - Check if affinity of a irq can be set from user space 179 * irq_set_thread_affinity - Notify irq threads to adjust affinity 180 * @desc: irq descriptor which has affinity changed 182 * Just set IRQTF_AFFINITY and delegate the affinity setting to the 211 pr_warn_once("irq_chip %s did not update eff. affinity mask of irq %u\n", in irq_validate_effective_affinity() 234 * it check whether the requested affinity mask intersects with in irq_do_set_affinity() 237 * the affinity setter from routing the interrupt to an isolated in irq_do_set_affinity() 246 * If all housekeeping CPUs in the affinity mask are offline, the in irq_do_set_affinity() 248 * housekeeping CPU which belongs to the affinity mask comes in irq_do_set_affinity() [all …]
|
/linux/lib/ |
H A D | cpu_rmap.c | 3 * 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 162 * cpu_rmap_update - update CPU rmap following a change of object affinity 164 * @index: Index of object whose affinity changed 165 * @affinity: New CPU affinity of object 168 const struct cpumask *affinity) in cpu_rmap_update() argument 188 /* Set distance to 0 for all CPUs in the new affinity mask. in cpu_rmap_update() 191 for_each_cpu(cpu, affinity) { in cpu_rmap_update() 223 /* Glue between IRQ affinity notifiers and CPU rmaps */ [all …]
|
/linux/Documentation/driver-api/cxl/platform/acpi/ |
H A D | srat.rst | 4 SRAT - Static Resource Affinity Table 7 The System/Static Resource Affinity Table describes resource (CPU, Memory) 8 affinity to "Proximity Domains". This table is technically optional, but for 14 Affinity entries and CEDT CFMWS to determine what your platform actually 27 Memory Affinity 34 Subtable Type : 01 [Memory Affinity] 47 Generic Port Affinity 49 The Generic Port Affinity subtable provides an association between a proximity 58 Subtable Type : 06 [Generic Port Affinity]
|
/linux/tools/virtio/ringtest/ |
H A D | run-on-all.sh | 19 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/drivers/infiniband/hw/hfi1/ |
H A D | affinity.h | 37 /* 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 */
|
/linux/tools/perf/util/ |
H A D | affinity.c | 2 /* Manage affinity to optimize IPIs inside the kernel perf API. */ 11 #include "affinity.h" 25 int affinity__setup(struct affinity *a) in affinity__setup() 45 * It is more efficient to change perf's affinity to the target 49 void affinity__set(struct affinity *a, int cpu) in affinity__set() 64 * We ignore errors because affinity is just an optimization. in affinity__set() 72 static void __affinity__cleanup(struct affinity *a) in __affinity__cleanup() 82 void affinity__cleanup(struct affinity *a) in affinity__cleanup()
|
H A D | evlist.h | 196 int affinity, int flush, int comp_level); 362 /** If present, used to set the affinity when switching between CPUs. */ 363 struct affinity *affinity; member 367 * evlist__for_each_cpu - without affinity, iterate over the evlist. With 368 * affinity, iterate over all CPUs and then the evlist 370 * CPUs the affinity is set to the CPU to avoid IPIs 374 * @affinity: NULL or used to set the affinity to the current CPU. 376 #define evlist__for_each_cpu(evlist_cpu_itr, evlist, affinity) \ argument 377 for ((evlist_cpu_itr) = evlist__cpu_begin(evlist, affinity); \ 382 struct evlist_cpu_iterator evlist__cpu_begin(struct evlist *evlist, struct affinity *affinity); [all …]
|
H A D | affinity.h | 8 struct affinity { struct 14 void affinity__cleanup(struct affinity *a); argument 15 void affinity__set(struct affinity *a, int cpu); 16 int affinity__setup(struct affinity *a);
|
H A D | mmap.c | 97 static int perf_mmap__aio_bind(struct mmap *map, int idx, struct perf_cpu 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 struct perf_cpu 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() 268 if (mp->affinity == PERF_AFFINITY_NODE && cpu__max_node() > 1) in perf_mmap__setup_affinity_mask() 270 else if (mp->affinity == PERF_AFFINITY_CPU) in perf_mmap__setup_affinity_mask() 284 if (mp->affinity != PERF_AFFINITY_SYS && in mmap__mmap() 286 pr_debug2("failed to alloc mmap affinity mask, error %d\n", in mmap__mmap()
|
/linux/tools/testing/selftests/rseq/ |
H A D | basic_test.c | 18 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() 39 sched_setaffinity(0, sizeof(affinity), &affinity); in test_cpu_pointer()
|
/linux/tools/power/cpupower/bench/ |
H A D | system.c | 67 * 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/include/linux/ |
H A D | cpu_rmap.h | 6 * cpu_rmap.c: CPU affinity reverse-map support 16 * struct cpu_rmap - CPU affinity reverse-map 21 * based on affinity masks 40 const struct cpumask *affinity); 53 * alloc_irq_cpu_rmap - allocate CPU affinity reverse-map for IRQs
|
H A D | irq.h | 59 * it from affinity setting 66 * IRQ_NO_BALANCING - Interrupt cannot be balanced (affinity set) 115 * IRQ_SET_MASK_OK - OK, core updates irq_common_data.affinity 116 * IRQ_SET_MASK_NOCOPY - OK, chip did update irq_common_data.affinity 136 * @affinity: IRQ affinity on SMP. If this is an IPI 139 * @effective_affinity: The effective IRQ affinity on SMP as some irq 141 * A subset of @affinity. 143 * @ipi_offset: Offset of first IPI target cpu in @affinity. Optional. 153 cpumask_var_t affinity; member 194 * IRQD_SETAFFINITY_PENDING - Affinity setting is pending [all …]
|
H A D | interrupt.h | 257 * struct irq_affinity_notify - context for notification of IRQ affinity changes 279 * struct irq_affinity - Description for automatic irq affinity assignments 280 * @pre_vectors: Don't apply affinity to @pre_vectors at beginning of 282 * @post_vectors: Don't apply affinity to @post_vectors at end of 284 * @nr_sets: The number of interrupt sets for which affinity 302 * struct irq_affinity_desc - Interrupt affinity descriptor 303 * @mask: cpumask to hold the affinity assignment 325 * irq_update_affinity_hint - Update the affinity hint 329 * Updates the affinity hint, but does not change the affinity of the interrupt. 338 * irq_set_affinity_and_hint - Update the affinity hint and apply the provided [all …]
|
/linux/drivers/pci/msi/ |
H A D | api.c | 138 * @affdesc: Optional pointer to an affinity descriptor structure. NULL otherwise 217 * * %PCI_IRQ_AFFINITY Auto-manage IRQs affinity by spreading 242 * vectors with affinity requirements 247 * @affd: affinity requirements (can be %NULL). 284 * Invoke the affinity spreading logic to ensure that in pci_alloc_irq_vectors_affinity() 324 * pci_irq_get_affinity() - Get a device interrupt vector affinity 333 * Return: MSI/MSI-X vector affinity, NULL if @nr is out of range or if 334 * the MSI(-X) vector was allocated without explicit affinity 353 /* MSI[X] interrupts can be allocated without affinity descriptor */ in pci_irq_get_affinity() 354 if (!desc->affinity) in pci_irq_get_affinity() [all …]
|
/linux/drivers/md/ |
H A D | dm-ps-io-affinity.c | 12 #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/arch/mips/kernel/ |
H A D | mips-mt-fpaff.c | 21 * CPU mask used to set process affinity for MT VPEs/TCs with FPUs 31 * FPU affinity with the user's requested processor affinity. 64 * mipsmt_sys_sched_setaffinity - set the cpu affinity of a process 156 * mipsmt_sys_sched_getaffinity - get the cpu affinity of a process 215 printk(KERN_DEBUG "FPU Affinity set after %ld emulations\n", in mt_fp_affinity_init()
|
/linux/Documentation/driver-api/cxl/platform/example-configurations/ |
H A D | flexible.rst | 142 Subtable Type : 01 [Memory Affinity] 154 Subtable Type : 01 [Memory Affinity] 166 Subtable Type : 01 [Memory Affinity] 178 Subtable Type : 01 [Memory Affinity] 190 Subtable Type : 01 [Memory Affinity] 202 Subtable Type : 01 [Memory Affinity] 214 Subtable Type : 01 [Memory Affinity]
|
/linux/Documentation/devicetree/bindings/interrupt-controller/ |
H A D | apple,aic.yaml | 21 - Per-IRQ affinity setting 89 FIQ affinity can be expressed as a single "affinities" node, 91 affinity. 93 "^.+-affinity$": 100 the affinity is not the default.
|
/linux/drivers/gpu/drm/amd/amdkfd/ |
H A D | kfd_crat.h | 87 * ComputeUnit Affinity structure and definitions 122 * HSA Memory Affinity structure and definitions 147 * HSA Cache Affinity structure and definitions 176 * HSA TLB Affinity structure and definitions 211 * HSA CCompute/APU Affinity structure and definitions 230 * HSA IO Link Affinity structure and definitions
|
/linux/drivers/perf/ |
H A D | arm_pmu_platform.c | 62 return of_property_present(node, "interrupt-affinity"); in pmu_has_irq_affinity() 71 * If we don't have an interrupt-affinity property, we guess irq in pmu_parse_irq_affinity() 72 * affinity matches our logical CPU order, as we used to assume. in pmu_parse_irq_affinity() 78 dn = of_parse_phandle(dev->of_node, "interrupt-affinity", i); in pmu_parse_irq_affinity() 80 dev_warn(dev, "failed to parse interrupt-affinity[%d]\n", i); in pmu_parse_irq_affinity() 124 dev_warn(dev, "no interrupt-affinity property, guessing.\n"); in pmu_parse_irqs()
|
/linux/Documentation/core-api/irq/ |
H A D | irq-affinity.rst | 2 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
|