From: Radu Rendec <radu@rendec.net>
To: Boqun Feng <boqun@kernel.org>
Cc: Kuan-Wei Chiu <visitorckw@gmail.com>,
tglx@kernel.org, peterz@infradead.org, lyude@redhat.com,
jserv@ccns.ncku.edu.tw, marscheng@google.com,
eleanor15x@gmail.com, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] irq: Make refcount_interrupt kunit test selectable
Date: Sun, 23 Aug 2026 17:52:24 -0400 [thread overview]
Message-ID: <fbe23b900adf28c950376f59bf6429cdc9d29045.camel@rendec.net> (raw)
In-Reply-To: <aothV3LBc84YJd88@tardis.local>
On Sun, 2026-08-23 at 14:08 -0700, Boqun Feng wrote:
> On Sun, Aug 23, 2026 at 04:46:23PM -0400, Radu Rendec wrote:
> > On Sun, 2026-08-23 at 17:17 +0000, Kuan-Wei Chiu wrote:
> > > Currently, refcount_interrupt_test is built unconditionally when
> > > CONFIG_KUNIT is enabled, causing it to run unexpectedly during boot.
> > >
> > > Fix this by introducing CONFIG_REFCOUNT_INTERRUPT_KUNIT_TEST so the
> > > test can be configured independently, following standard kunit
> > > practices.
> > >
> > > Fixes: 07a88e2bcd5b ("irq: Add KUnit test for refcounted interrupt enable/disable")
> > > Signed-off-by: Kuan-Wei Chiu <visitorckw@gmail.com>
> > > ---
> > > kernel/irq/Kconfig | 12 ++++++++++++
> > > kernel/irq/Makefile | 2 +-
> > > 2 files changed, 13 insertions(+), 1 deletion(-)
> >
> > Can someone please explain me why this needs to be a separate unit test
> > in the first place and can't be integrated into the (previously)
> > existing unit test gated by IRQ_KUNIT_TEST?
> >
>
> If you look at the irq_test.c, you will find that it primarily tests the
> {request,disable,enable}_irq() API (i.e. allocating IRQ vectors and
> enabling and disabling them), which is not the same scope as
> local_interrupt_{disable,enable}() (i.e. operating the CPU irq disabling
> status), so it makes sense to have a separate test case.
Thanks! If we want to keep the unit tests separated/grouped by scope,
then yes, it makes sense for sure. What I don't like about this is:
* The naming of the two config options is inconsistent: IRQ_KUNIT_TEST
and REFCOUNT_INTERRUPT_KUNIT_TEST.
* The naming and description of the older test become misleading. The
way they are formulated, I would expect them to test "everything
related to IRQ" but now we have a separate option (and kunit test)
dedicated to the refcount stuff.
If they must be separated/grouped by scope, I would find it much nicer
and less confusing if they were called something like:
IRQ_MANAGEMENT_KUNIT_TEST and
IRQ_REFCOUNT_KUNIT_TEST,
and also the corresponding .c files were somewhat consistent with the
Kconfig option names. The description of the older test would have to
be updated to make it clear that it's not just "everything IRQ".
In that scenario, new kunit test(s) related to different aspects of the
IRQ subsystem would get their own Kconfig option and file, and would
hopefully follow the same naming pattern.
To be clear, I'm not arguing that keeping the tests separate is wrong.
I'm arguing that if we do that, we should also make some adjustments to
keep everything clean and tidy.
> But yes, I agree Kuan-Wei's fix is needed.
Yes, I agree, those unit tests must not be gated by KUNIT alone, so
something must be done to fix it.
> > Ironically, both the issue that this patch is trying to fix and my
> > question were raised by sashiko here:
> > https://lore.kernel.org/all/20260605055315.3E96E1F00893@smtp.kernel.org/
> >
> > > diff --git a/kernel/irq/Kconfig b/kernel/irq/Kconfig
> > > index 05cba4e16dad..6923f37eaab4 100644
> > > --- a/kernel/irq/Kconfig
> > > +++ b/kernel/irq/Kconfig
> > > @@ -150,6 +150,18 @@ config IRQ_KUNIT_TEST
> > >
> > > If unsure, say N.
> > >
> > > +config REFCOUNT_INTERRUPT_KUNIT_TEST
> > > + tristate "Test refcounted interrupt enable/disable" if !KUNIT_ALL_TESTS
> > > + depends on KUNIT
> > > + default KUNIT_ALL_TESTS
> > > + help
> > > + This builds the kunit tests for the refcounted interrupt
> > > + infrastructure. It verifies the correctness of single, nested,
> > > + and multiple interrupt enable/disable state changes and ensures
> > > + that the underlying reference counting mechanisms work as expected.
> > > +
> > > + If unsure, say N.
> > > +
> > > endmenu
> > >
> > > config GENERIC_IRQ_MULTI_HANDLER
> > > diff --git a/kernel/irq/Makefile b/kernel/irq/Makefile
> > > index 44c4d6fc502a..0e5df962a149 100644
> > > --- a/kernel/irq/Makefile
> > > +++ b/kernel/irq/Makefile
> > > @@ -16,4 +16,4 @@ obj-$(CONFIG_SMP) += affinity.o
> > > obj-$(CONFIG_GENERIC_IRQ_DEBUGFS) += debugfs.o
> > > obj-$(CONFIG_GENERIC_IRQ_MATRIX_ALLOCATOR) += matrix.o
> > > obj-$(CONFIG_IRQ_KUNIT_TEST) += irq_test.o
> > > -obj-$(CONFIG_KUNIT) += refcount_interrupt_test.o
> > > +obj-$(CONFIG_REFCOUNT_INTERRUPT_KUNIT_TEST) += refcount_interrupt_test.o
--
Best regards,
Radu
next prev parent reply other threads:[~2026-08-23 21:52 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-23 17:17 [PATCH] irq: Make refcount_interrupt kunit test selectable Kuan-Wei Chiu
2026-08-23 20:46 ` Radu Rendec
2026-08-23 21:08 ` Boqun Feng
2026-08-23 21:52 ` Radu Rendec [this message]
2026-08-24 5:23 ` Boqun Feng
2026-08-24 15:02 ` Radu Rendec
2026-08-25 14:09 ` Boqun Feng
2026-08-23 21:10 ` Boqun Feng
2026-08-24 15:14 ` Radu Rendec
2026-08-25 20:11 ` lyude
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=fbe23b900adf28c950376f59bf6429cdc9d29045.camel@rendec.net \
--to=radu@rendec.net \
--cc=boqun@kernel.org \
--cc=eleanor15x@gmail.com \
--cc=jserv@ccns.ncku.edu.tw \
--cc=linux-kernel@vger.kernel.org \
--cc=lyude@redhat.com \
--cc=marscheng@google.com \
--cc=peterz@infradead.org \
--cc=tglx@kernel.org \
--cc=visitorckw@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