| # SPDX-License-Identifier: GPL-2.0-only | |
| menu "IRQ subsystem" | |
| # Options selectable by the architecture code | |
| # Make sparse irq Kconfig switch below available | |
| config MAY_HAVE_SPARSE_IRQ | |
| bool | |
| # Enable the generic irq autoprobe mechanism | |
| config GENERIC_IRQ_PROBE | |
| bool | |
| # Use the generic /proc/interrupts implementation | |
| config GENERIC_IRQ_SHOW | |
| bool | |
| # Print level/edge extra information | |
| config GENERIC_IRQ_SHOW_LEVEL | |
| bool | |
| # Supports effective affinity mask | |
| config GENERIC_IRQ_EFFECTIVE_AFF_MASK | |
| depends on SMP | |
| bool | |
| # Support for delayed migration from interrupt context | |
| config GENERIC_PENDING_IRQ | |
| bool | |
| # Support for generic irq migrating off cpu before the cpu is offline. | |
| config GENERIC_IRQ_MIGRATION | |
| bool | |
| # Alpha specific irq affinity mechanism | |
| config AUTO_IRQ_AFFINITY | |
| bool | |
| # Interrupt injection mechanism | |
| config GENERIC_IRQ_INJECTION | |
| bool | |
| # Tasklet based software resend for pending interrupts on enable_irq() | |
| config HARDIRQS_SW_RESEND | |
| bool | |
| # Generic configurable interrupt chip implementation | |
| config GENERIC_IRQ_CHIP | |
| bool | |
| select IRQ_DOMAIN | |
| # Generic irq_domain hw <--> linux irq number translation | |
| config IRQ_DOMAIN | |
| bool | |
| # Support for simulated interrupts | |
| config IRQ_SIM | |
| bool | |
| select IRQ_WORK | |
| select IRQ_DOMAIN | |
| # Support for hierarchical irq domains | |
| config IRQ_DOMAIN_HIERARCHY | |
| bool | |
| select IRQ_DOMAIN | |
| # Support for obsolete non-mapping irq domains | |
| config IRQ_DOMAIN_NOMAP | |
| bool | |
| select IRQ_DOMAIN | |
| # Support for hierarchical fasteoi+edge and fasteoi+level handlers | |
| config IRQ_FASTEOI_HIERARCHY_HANDLERS | |
| bool | |
| # Generic IRQ IPI support | |
| config GENERIC_IRQ_IPI | |
| bool | |
| depends on SMP | |
| select IRQ_DOMAIN_HIERARCHY | |
| # Generic IRQ IPI Mux support | |
| config GENERIC_IRQ_IPI_MUX | |
| bool | |
| depends on SMP | |
| # Generic MSI hierarchical interrupt domain support | |
| config GENERIC_MSI_IRQ | |
| bool | |
| select IRQ_DOMAIN_HIERARCHY | |
| # irqchip drivers should select this if they call iommu_dma_prepare_msi() | |
| config IRQ_MSI_IOMMU | |
| bool | |
| config GENERIC_IRQ_MATRIX_ALLOCATOR | |
| bool | |
| config GENERIC_IRQ_RESERVATION_MODE | |
| bool | |
| # Snapshot for interrupt statistics | |
| config GENERIC_IRQ_STAT_SNAPSHOT | |
| bool | |
| # Support forced irq threading | |
| config IRQ_FORCED_THREADING | |
| bool | |
| config SPARSE_IRQ | |
| bool "Support sparse irq numbering" if MAY_HAVE_SPARSE_IRQ | |
| help | |
| Sparse irq numbering is useful for distro kernels that want | |
| to define a high CONFIG_NR_CPUS value but still want to have | |
| low kernel memory footprint on smaller machines. | |
| ( Sparse irqs can also be beneficial on NUMA boxes, as they spread | |
| out the interrupt descriptors in a more NUMA-friendly way. ) | |
| If you don't know what to do here, say N. | |
| config GENERIC_IRQ_DEBUGFS | |
| bool "Expose irq internals in debugfs" | |
| depends on DEBUG_FS | |
| select GENERIC_IRQ_INJECTION | |
| default n | |
| help | |
| Exposes internal state information through debugfs. Mostly for | |
| developers and debugging of hard to diagnose interrupt problems. | |
| If you don't know what to do here, say N. | |
| # Clear forwarded VM interrupts during kexec. | |
| # This option ensures the kernel clears active states for interrupts | |
| # forwarded to virtual machines (VMs) during a machine kexec. | |
| config GENERIC_IRQ_KEXEC_CLEAR_VM_FORWARD | |
| bool | |
| config IRQ_KUNIT_TEST | |
| bool "KUnit tests for IRQ management APIs" if !KUNIT_ALL_TESTS | |
| depends on KUNIT=y | |
| depends on SPARSE_IRQ | |
| default KUNIT_ALL_TESTS | |
| select IRQ_DOMAIN | |
| imply SMP | |
| help | |
| This option enables KUnit tests for the IRQ subsystem API. These are | |
| only for development and testing, not for regular kernel use cases. | |
| If unsure, say N. | |
| endmenu | |
| config GENERIC_IRQ_MULTI_HANDLER | |
| bool | |
| help | |
| Allow to specify the low level IRQ handler at run time. | |
| # Cavium Octeon is the last system to use this deprecated option | |
| # Do not even think of enabling this on any new platform | |
| config DEPRECATED_IRQ_CPU_ONOFFLINE | |
| bool | |
| depends on CAVIUM_OCTEON_SOC | |
| default CAVIUM_OCTEON_SOC |