From: Brian Norris <briannorris@chromium.org>
To: Richard Weinberger <richard@nod.at>,
Anton Ivanov <anton.ivanov@cambridgegreys.com>,
Johannes Berg <johannes@sipsolutions.net>
Cc: linux-um@lists.infradead.org, linux-kernel@vger.kernel.org,
David Gow <davidgow@google.com>, Sinan Nalkaya <sardok@gmail.com>,
Brian Norris <briannorris@chromium.org>
Subject: [PATCH] um: Support SPARSE_IRQ
Date: Mon, 25 Aug 2025 14:19:51 -0700 [thread overview]
Message-ID: <20250825212031.111027-1-briannorris@chromium.org> (raw)
From: Sinan Nalkaya <sardok@gmail.com>
Motivation: IRQ KUnit tests are going to require CONFIG_SPARSE_IRQ [1] in
order to:
(a) reliably allocate additional (fake) IRQs and
(b) ensure we can test managed affinity, which is only supported with
SPARSE_IRQ.
It seems that the only thing necessary for ARCH=um is to tell the genirq
core to skip over our preallocated NR_IRQS.
Tested with:
$ ./tools/testing/kunit/kunit.py run
[...]
[13:55:58] Testing complete. Ran 676 tests: passed: 646, skipped: 30
[...]
This comparse with pre-patch results:
Ran 672 tests: passed: 644, skipped: 28
i.e., we no longer skip tests that 'depend on SPARSE_IRQ', and existing
tests all pass.
[1]
[PATCH v2 4/6] genirq/test: Depend on SPARSE_IRQ
https://lore.kernel.org/all/CABVgOSngoD0fh1WEkUCEwSdk0Joypo3dA_Y_SjW+K=nVDnZs3Q@mail.gmail.com/
Signed-off-by: Sinan Nalkaya <sardok@gmail.com>
[Brian: Adapted Sinan's patch; rewrote commit message]
Signed-off-by: Brian Norris <briannorris@chromium.org>
---
This is adapted from Sinan's work at:
[PATCH 1/1] um: Fix broken IRQs if SPARSE_IRQ is selected
https://lore.kernel.org/all/1360193940-31504-1-git-send-email-sardok@gmail.com/
Place any blame for errors on me of course.
I'm not much of a UML developer, although I've been developing KUnit
tests which default to running on ARCH=um.
I also can't quite tell if MAY_HAVE_SPARSE_IRQ or SPARSE_IRQ is a better
'select' target. Almost every other architecture uses 'select
SPARSE_IRQ', with the one exception of arch/csky. For my purposes, it's
better to 'select SPARSE_IRQ', for consistency with other ARCH'es, and
to make it easier for KUnit builds to get it. But I'm less sure if there
are good reasons to want to make it user-(un)selectable.
arch/um/Kconfig | 1 +
arch/um/kernel/irq.c | 7 +++++++
2 files changed, 8 insertions(+)
diff --git a/arch/um/Kconfig b/arch/um/Kconfig
index 9083bfdb7735..8161cc5ae6f7 100644
--- a/arch/um/Kconfig
+++ b/arch/um/Kconfig
@@ -38,6 +38,7 @@ config UML
select HAVE_ARCH_TRACEHOOK
select HAVE_SYSCALL_TRACEPOINTS
select THREAD_INFO_IN_TASK
+ select SPARSE_IRQ
config MMU
bool
diff --git a/arch/um/kernel/irq.c b/arch/um/kernel/irq.c
index 0dfaf96bb7da..d59a5a0f7fbf 100644
--- a/arch/um/kernel/irq.c
+++ b/arch/um/kernel/irq.c
@@ -691,6 +691,13 @@ void __init init_IRQ(void)
os_setup_epoll();
}
+#ifdef CONFIG_SPARSE_IRQ
+int __init arch_probe_nr_irqs(void)
+{
+ return NR_IRQS;
+}
+#endif
+
void sigchld_handler(int sig, struct siginfo *unused_si,
struct uml_pt_regs *regs, void *mc)
{
--
2.51.0.261.g7ce5a0a67e-goog
next reply other threads:[~2025-08-25 21:20 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-08-25 21:19 Brian Norris [this message]
2025-08-26 1:38 ` [PATCH] um: Support SPARSE_IRQ David Gow
2025-08-27 19:38 ` Johannes Berg
2025-08-27 19:41 ` Brian Norris
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250825212031.111027-1-briannorris@chromium.org \
--to=briannorris@chromium.org \
--cc=anton.ivanov@cambridgegreys.com \
--cc=davidgow@google.com \
--cc=johannes@sipsolutions.net \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-um@lists.infradead.org \
--cc=richard@nod.at \
--cc=sardok@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).