1# SPDX-License-Identifier: GPL-2.0-only 2menu "IRQ subsystem" 3# Options selectable by the architecture code 4 5# Make sparse irq Kconfig switch below available 6config MAY_HAVE_SPARSE_IRQ 7 bool 8 9# Enable the generic irq autoprobe mechanism 10config GENERIC_IRQ_PROBE 11 bool 12 13# Use the generic /proc/interrupts implementation 14config GENERIC_IRQ_SHOW 15 bool 16 17# Print level/edge extra information 18config GENERIC_IRQ_SHOW_LEVEL 19 bool 20 21# Supports effective affinity mask 22config GENERIC_IRQ_EFFECTIVE_AFF_MASK 23 depends on SMP 24 bool 25 26# Support for delayed migration from interrupt context 27config GENERIC_PENDING_IRQ 28 bool 29 30# Support for generic irq migrating off cpu before the cpu is offline. 31config GENERIC_IRQ_MIGRATION 32 bool 33 34# Alpha specific irq affinity mechanism 35config AUTO_IRQ_AFFINITY 36 bool 37 38# Interrupt injection mechanism 39config GENERIC_IRQ_INJECTION 40 bool 41 42# Tasklet based software resend for pending interrupts on enable_irq() 43config HARDIRQS_SW_RESEND 44 bool 45 46# Generic configurable interrupt chip implementation 47config GENERIC_IRQ_CHIP 48 bool 49 select IRQ_DOMAIN 50 51# Generic irq_domain hw <--> linux irq number translation 52config IRQ_DOMAIN 53 bool 54 55# Support for simulated interrupts 56config IRQ_SIM 57 bool 58 select IRQ_WORK 59 select IRQ_DOMAIN 60 61# Support for hierarchical irq domains 62config IRQ_DOMAIN_HIERARCHY 63 bool 64 select IRQ_DOMAIN 65 66# Support for obsolete non-mapping irq domains 67config IRQ_DOMAIN_NOMAP 68 bool 69 select IRQ_DOMAIN 70 71# Support for hierarchical fasteoi+edge and fasteoi+level handlers 72config IRQ_FASTEOI_HIERARCHY_HANDLERS 73 bool 74 75# Generic IRQ IPI support 76config GENERIC_IRQ_IPI 77 bool 78 depends on SMP 79 select IRQ_DOMAIN_HIERARCHY 80 81# Generic IRQ IPI Mux support 82config GENERIC_IRQ_IPI_MUX 83 bool 84 depends on SMP 85 86# Generic MSI hierarchical interrupt domain support 87config GENERIC_MSI_IRQ 88 bool 89 select IRQ_DOMAIN_HIERARCHY 90 91# irqchip drivers should select this if they call iommu_dma_prepare_msi() 92config IRQ_MSI_IOMMU 93 bool 94 95config IRQ_TIMINGS 96 bool 97 98config GENERIC_IRQ_MATRIX_ALLOCATOR 99 bool 100 101config GENERIC_IRQ_RESERVATION_MODE 102 bool 103 104# Snapshot for interrupt statistics 105config GENERIC_IRQ_STAT_SNAPSHOT 106 bool 107 108# Support forced irq threading 109config IRQ_FORCED_THREADING 110 bool 111 112config SPARSE_IRQ 113 bool "Support sparse irq numbering" if MAY_HAVE_SPARSE_IRQ 114 help 115 116 Sparse irq numbering is useful for distro kernels that want 117 to define a high CONFIG_NR_CPUS value but still want to have 118 low kernel memory footprint on smaller machines. 119 120 ( Sparse irqs can also be beneficial on NUMA boxes, as they spread 121 out the interrupt descriptors in a more NUMA-friendly way. ) 122 123 If you don't know what to do here, say N. 124 125config GENERIC_IRQ_DEBUGFS 126 bool "Expose irq internals in debugfs" 127 depends on DEBUG_FS 128 select GENERIC_IRQ_INJECTION 129 default n 130 help 131 132 Exposes internal state information through debugfs. Mostly for 133 developers and debugging of hard to diagnose interrupt problems. 134 135 If you don't know what to do here, say N. 136 137# Clear forwarded VM interrupts during kexec. 138# This option ensures the kernel clears active states for interrupts 139# forwarded to virtual machines (VMs) during a machine kexec. 140config GENERIC_IRQ_KEXEC_CLEAR_VM_FORWARD 141 bool 142 143config IRQ_KUNIT_TEST 144 bool "KUnit tests for IRQ management APIs" if !KUNIT_ALL_TESTS 145 depends on KUNIT=y 146 depends on SPARSE_IRQ 147 default KUNIT_ALL_TESTS 148 select IRQ_DOMAIN 149 imply SMP 150 help 151 This option enables KUnit tests for the IRQ subsystem API. These are 152 only for development and testing, not for regular kernel use cases. 153 154 If unsure, say N. 155 156endmenu 157 158config GENERIC_IRQ_MULTI_HANDLER 159 bool 160 help 161 Allow to specify the low level IRQ handler at run time. 162 163# Cavium Octeon is the last system to use this deprecated option 164# Do not even think of enabling this on any new platform 165config DEPRECATED_IRQ_CPU_ONOFFLINE 166 bool 167 depends on CAVIUM_OCTEON_SOC 168 default CAVIUM_OCTEON_SOC 169