Home
last modified time | relevance | path

Searched full:ipis (Results 1 – 25 of 160) sorted by relevance

1234567

/linux-6.12.1/kernel/irq/
Dipi-mux.c3 * Multiplex several virtual IPIs over a single HW IPI.
118 * ipi_mux_process - Process multiplexed virtual IPIs
124 unsigned long ipis; in ipi_mux_process() local
135 * Clear the IPIs we are about to handle. This pairs with the in ipi_mux_process()
138 ipis = atomic_fetch_andnot(en, &icpu->bits) & en; in ipi_mux_process()
140 for_each_set_bit(hwirq, &ipis, BITS_PER_TYPE(int)) in ipi_mux_process()
145 * ipi_mux_create - Create virtual IPIs multiplexed on top of a single
147 * @nr_ipi: number of virtual IPIs to create. This should
151 * Returns first virq of the newly created virtual IPIs upon success
Dipi.c110 * The IPIs allocated with irq_reserve_ipi() are returned to the system
159 * the hwirq it needs to use to receive and send IPIs.
234 * Minimise the overhead by omitting the checks for Linux SMP IPIs. in __ipi_send_single()
277 * Minimise the overhead by omitting the checks for Linux SMP IPIs. in __ipi_send_mask()
/linux-6.12.1/drivers/irqchip/
Dirq-riscv-imsic-early.c35 /* Enable IPIs for current CPU. */ in imsic_ipi_starting_cpu()
41 /* Disable IPIs for current CPU. */ in imsic_ipi_dying_cpu()
57 /* Announce that IMSIC is providing IPIs */ in imsic_ipi_domain_init()
58 pr_info("%pfwP: providing IPIs using interrupt %d\n", imsic->fwnode, IMSIC_IPI_ID); in imsic_ipi_domain_init()
116 /* Setup IPIs */ in imsic_starting_cpu()
133 /* Cleanup IPIs */ in imsic_dying_cpu()
174 * virtual IPIs is done via generic IPI-Mux in imsic_early_probe()
194 /* Do early setup of IPIs */ in imsic_early_dt_init()
234 /* Do early setup of IMSIC state and IPIs */ in imsic_early_acpi_init()
Dirq-apple-aic.c19 * - 2 per-CPU IPIs (meant as "self" and "other", but they are
27 * IRQ vector. These are used for Fast IPIs, the ARMv8 timer IRQs, and
33 * and one for IPIs.
34 * - Since Linux needs more than 2 IPIs, we implement a software IRQ controller
35 * and funnel all IPIs into one per-CPU IPI (the second "self" IPI is unused).
239 /* True if SYS_IMP_APL_IPI_RR_LOCAL_EL1 exists for local fast IPIs (M1+) */
545 * - Fast IPIs (not yet used) in aic_handle_fiq()
868 * Always keep IPIs unmasked at the hardware level (except auto-masking in aic_init_cpu()
870 * These registers only exist on AICv1, AICv2 always uses fast IPIs. in aic_init_cpu()
1061 pr_info("Using Fast IPIs"); in aic_of_ic_init()
/linux-6.12.1/arch/riscv/kernel/
Dsbi-ipi.c3 * Multiplex several IPIs over a single HW IPI.
62 pr_err("unable to create muxed IPIs\n"); in sbi_ipi_init()
71 * the masking/unmasking of virtual IPIs is done in sbi_ipi_init()
79 pr_info("providing IPIs using SBI IPI extension\n"); in sbi_ipi_init()
83 * the extra context switch needed to handle IPIs. in sbi_ipi_init()
/linux-6.12.1/Documentation/devicetree/bindings/interrupt-controller/
Dapple,aic.yaml24 - 2 per-CPU IPIs (meant as "self" and "other", but they are interchangeable
34 IPIs may be performed via MMIO registers on all variants of AIC. Starting
35 from A11, system registers may also be used for "fast" IPIs. Starting from
36 M1, even faster IPIs within the same cluster may be achieved by writing to
Dmti,gic.yaml16 interrupts which can be used as IPIs. The GIC also includes a free-running
55 Specifies the range of GIC interrupts that are reserved for IPIs.
/linux-6.12.1/tools/testing/selftests/kvm/x86_64/
Dxapic_ipi_test.c13 * The test starts two vCPUs: one that sends IPIs and one that continually
20 * exit with error. Test is still usefull on non-numa for testing IPIs.
138 * Init interrupt command register for sending IPIs in sender_guest_code()
213 "Sending vCPU sent %lu IPIs to halting vCPU\n" in vcpu_thread()
214 "Halting vCPU halted %lu times, woke %lu times, received %lu IPIs.\n" in vcpu_thread()
337 "IPIs sent=%lu received=%lu, HLTs=%lu wakes=%lu\n", in do_migrations()
470 "Sending vCPU sent %lu IPIs to halting vCPU\n" in main()
471 "Halting vCPU halted %lu times, woke %lu times, received %lu IPIs.\n" in main()
/linux-6.12.1/arch/mips/include/asm/
Dsmp.h112 * This function will set up the necessary IPIs for Linux to communicate
119 * This function will free up IPIs allocated with mips_smp_ipi_allocate to the
120 * CPUs in mask, which must be a subset of the IPIs that have been configured.
/linux-6.12.1/kernel/rcu/
DKconfig105 user-mode execution as quiescent states. It forces IPIs and
123 CPU hotplug code paths. It can force IPIs on online CPUs,
300 Use this option to further reduce the number of IPIs sent
304 eliminates such IPIs for many workloads, proper setting
309 Say Y here if you hate IPIs.
/linux-6.12.1/tools/perf/util/
Daffinity.c2 /* Manage affinity to optimize IPIs inside the kernel perf API. */
65 * In this case the IPIs inside the kernel's perf API still work. in affinity__set()
/linux-6.12.1/arch/powerpc/sysdev/xics/
Dxics-common.c132 * IPIs are marked IRQF_PERCPU. The handler was set in map. in xics_request_ipi()
140 /* Register all the IPIs */ in xics_smp_probe()
215 /* We need to get IPIs still. */ in xics_migrate_irqs_away()
256 * Allow IPIs again. This is done at the very end, after migrating all in xics_migrate_irqs_away()
338 /* Don't call into ICS for IPIs */ in xics_host_map()
/linux-6.12.1/Documentation/virt/kvm/x86/
Dhypercalls.rst145 :Purpose: Send IPIs to multiple vCPUs.
152 The hypercall lets a guest send multicast IPIs, with at most 128
159 Returns the number of CPUs to which the IPIs were delivered successfully.
/linux-6.12.1/arch/powerpc/include/asm/
Dmpic.h351 * registers. Primary controllers have IPIs and affinity control.
457 * 10 for IPIs. You can call this on both IPIs and IRQ numbers, but the
474 /* Request IPIs on primary mpic */
/linux-6.12.1/tools/perf/arch/x86/tests/
Dintel-cqm.c35 * Since reading Intel CQM event counters requires sending SMP IPIs, the
38 * smp_call_function_many() caused by sending IPIs from NMI context.
/linux-6.12.1/arch/loongarch/kernel/
Dmachine_kexec.c110 * We know we were online, and there will be no incoming IPIs at in kexec_reboot()
148 /* We won't be sent IPIs any more. */ in kexec_shutdown_secondary()
178 /* We won't be sent IPIs any more. */ in crash_shutdown_secondary()
/linux-6.12.1/Documentation/virt/kvm/
Dvcpu-requests.rst70 as well as to avoid sending unnecessary IPIs (see "IPI Reduction"), and
161 proceeding. This flag only applies to VCPUs that would receive IPIs.
195 IPIs will only trigger guest mode exits for VCPU threads that are in guest
244 Some requests, those with the KVM_REQUEST_WAIT flag set, require IPIs to
/linux-6.12.1/Documentation/virt/kvm/loongarch/
Dhypercalls.rst74 :Purpose: Send IPIs to multiple vCPUs.
81 The hypercall lets a guest send multiple IPIs (Inter-Process Interrupts) with
/linux-6.12.1/arch/sparc/kernel/
Dleon_smp.c59 /* IRQ number of LEON IPIs */
269 /* Initialize IPIs on the LEON, in order to save IRQ resources only one IRQ
270 * is used for all three types of IPIs.
288 printk(KERN_INFO "leon: SMP IPIs at IRQ %d\n", leon_ipi_irq); in leon_ipi_init()
/linux-6.12.1/arch/arm64/include/asm/
Dcacheflush.h96 * turns out, KGDB uses IPIs to round-up the secondary CPUs during in flush_icache_range()
97 * the patching operation, so we don't need extra IPIs here anyway. in flush_icache_range()
/linux-6.12.1/arch/x86/kernel/
Dnmi_selftest.c5 * Testsuite for NMI: IPIs
28 /* check to see if NMI IPIs work on this machine */
/linux-6.12.1/arch/arm64/include/asm/xen/
Devents.h11 /* Xen IPIs go here */
/linux-6.12.1/arch/arm/include/asm/xen/
Devents.h11 /* Xen IPIs go here */
/linux-6.12.1/arch/mips/kernel/
Dmachine_kexec.c123 /* We won't be sent IPIs any more. */ in kexec_shutdown_secondary()
176 * We know we were online, and there will be no incoming IPIs at in kexec_reboot()
/linux-6.12.1/arch/arm/mach-mmp/
Dplatsmp.c17 * there. No IPIs involved. in mmp3_boot_secondary()

1234567