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 - 2026 Red Hat, Inc.