Some architectures have a rather static IRQ layout, with a limited
NR_IRQS. Without SPARSE_IRQ, we may not be able to allocate any new fake
IRQs, and the test will fail. (This occurs on ARCH=m68k, for example.)
Additionally, managed-affinity is only supported with
CONFIG_SPARSE_IRQ=y, so irq_shutdown_depth_test() and
irq_cpuhotplug_test() would fail without it.
Add a 'SPARSE_IRQ' dependency to avoid these problems.
Many architectures 'select SPARSE_IRQ', so this is easy to miss.
Notably, this also excludes ARCH=um from running any of these tests,
even though some of them might work.
Fixes: 66067c3c8a1e ("genirq: Add kunit tests for depth counts")
Reported-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Brian Norris <briannorris@chromium.org>
---
Changes in v2:
* Make all tests depend on SPARSE_IRQ, not just a few (resolves
ARCH=m68k issues)
kernel/irq/Kconfig | 1 +
1 file changed, 1 insertion(+)
diff --git a/kernel/irq/Kconfig b/kernel/irq/Kconfig
index 08088b8e95ae..a75df2bb9db6 100644
--- a/kernel/irq/Kconfig
+++ b/kernel/irq/Kconfig
@@ -147,6 +147,7 @@ config GENERIC_IRQ_KEXEC_CLEAR_VM_FORWARD
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
--
2.51.0.rc2.233.g662b1ed5c5-goog
On Sat, 23 Aug 2025 at 03:01, Brian Norris <briannorris@chromium.org> wrote: > > Some architectures have a rather static IRQ layout, with a limited > NR_IRQS. Without SPARSE_IRQ, we may not be able to allocate any new fake > IRQs, and the test will fail. (This occurs on ARCH=m68k, for example.) > > Additionally, managed-affinity is only supported with > CONFIG_SPARSE_IRQ=y, so irq_shutdown_depth_test() and > irq_cpuhotplug_test() would fail without it. > > Add a 'SPARSE_IRQ' dependency to avoid these problems. > > Many architectures 'select SPARSE_IRQ', so this is easy to miss. > > Notably, this also excludes ARCH=um from running any of these tests, > even though some of them might work. > > Fixes: 66067c3c8a1e ("genirq: Add kunit tests for depth counts") > Reported-by: Guenter Roeck <linux@roeck-us.net> > Signed-off-by: Brian Norris <briannorris@chromium.org> > --- I confess to being disappointed that we lose ARCH=um support with this -- it's nice to have it run on the "default" configuration -- but the correct way of solving this is probably to support SPARSE_IRQ on UML, which is probably more work than it's worth. So this is, nevertheless, Reviewed-by: David Gow <davidgow@google.com> Cheers, -- David
On Sat, Aug 23, 2025 at 02:59:26PM +0800, David Gow wrote: > On Sat, 23 Aug 2025 at 03:01, Brian Norris <briannorris@chromium.org> wrote: > > Notably, this also excludes ARCH=um from running any of these tests, > > even though some of them might work. > > I confess to being disappointed that we lose ARCH=um support with this > -- it's nice to have it run on the "default" configuration -- but the > correct way of solving this is probably to support SPARSE_IRQ on UML, > which is probably more work than it's worth. I made an educated guess on how to support SPARSE_IRQ for ARCH=um, and I got something working here: [PATCH] um: Support SPARSE_IRQ http://lore.kernel.org/all/20250825212031.111027-1-briannorris@chromium.org Brian
On Fri, Aug 22, 2025 at 11:59:05AM -0700, Brian Norris wrote: > Some architectures have a rather static IRQ layout, with a limited > NR_IRQS. Without SPARSE_IRQ, we may not be able to allocate any new fake > IRQs, and the test will fail. (This occurs on ARCH=m68k, for example.) > > Additionally, managed-affinity is only supported with > CONFIG_SPARSE_IRQ=y, so irq_shutdown_depth_test() and > irq_cpuhotplug_test() would fail without it. > > Add a 'SPARSE_IRQ' dependency to avoid these problems. > > Many architectures 'select SPARSE_IRQ', so this is easy to miss. > > Notably, this also excludes ARCH=um from running any of these tests, > even though some of them might work. > > Fixes: 66067c3c8a1e ("genirq: Add kunit tests for depth counts") > Reported-by: Guenter Roeck <linux@roeck-us.net> > Signed-off-by: Brian Norris <briannorris@chromium.org> Tested-by: Guenter Roeck <linux@roeck-us.net> > --- > > Changes in v2: > * Make all tests depend on SPARSE_IRQ, not just a few (resolves > ARCH=m68k issues) > > kernel/irq/Kconfig | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/kernel/irq/Kconfig b/kernel/irq/Kconfig > index 08088b8e95ae..a75df2bb9db6 100644 > --- a/kernel/irq/Kconfig > +++ b/kernel/irq/Kconfig > @@ -147,6 +147,7 @@ config GENERIC_IRQ_KEXEC_CLEAR_VM_FORWARD > 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 > -- > 2.51.0.rc2.233.g662b1ed5c5-goog >
The following commit has been merged into the irq/core branch of tip:
Commit-ID: 0c888bc86d672e551ce5c58b891c8b44f8967643
Gitweb: https://git.kernel.org/tip/0c888bc86d672e551ce5c58b891c8b44f8967643
Author: Brian Norris <briannorris@chromium.org>
AuthorDate: Fri, 22 Aug 2025 11:59:05 -07:00
Committer: Thomas Gleixner <tglx@linutronix.de>
CommitterDate: Wed, 03 Sep 2025 17:04:52 +02:00
genirq/test: Depend on SPARSE_IRQ
Some architectures have a static interrupt layout, with a limited number of
interrupts. Without SPARSE_IRQ, the test may not be able to allocate any
fake interrupts, and the test will fail. (This occurs on ARCH=m68k, for
example.)
Additionally, managed-affinity is only supported with CONFIG_SPARSE_IRQ=y,
so irq_shutdown_depth_test() and irq_cpuhotplug_test() would fail without
it.
Add a 'SPARSE_IRQ' dependency to avoid these problems.
Many architectures 'select SPARSE_IRQ', so this is easy to miss.
Notably, this also excludes ARCH=um from running any of these tests, even
though some of them might work.
Fixes: 66067c3c8a1e ("genirq: Add kunit tests for depth counts")
Reported-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Brian Norris <briannorris@chromium.org>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Tested-by: Guenter Roeck <linux@roeck-us.net>
Reviewed-by: David Gow <davidgow@google.com>
Link: https://lore.kernel.org/all/20250822190140.2154646-5-briannorris@chromium.org
---
kernel/irq/Kconfig | 1 +
1 file changed, 1 insertion(+)
diff --git a/kernel/irq/Kconfig b/kernel/irq/Kconfig
index 8bc4de3..1b4254d 100644
--- a/kernel/irq/Kconfig
+++ b/kernel/irq/Kconfig
@@ -143,6 +143,7 @@ config GENERIC_IRQ_KEXEC_CLEAR_VM_FORWARD
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
© 2016 - 2025 Red Hat, Inc.