mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Guenter Roeck <linux@roeck-us.net>
To: Brian Norris <briannorris@chromium.org>
Cc: Thomas Gleixner <tglx@linutronix.de>,
	Tsai Sung-Fu <danielsftsai@google.com>,
	Douglas Anderson <dianders@chromium.org>,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH v4] genirq: Add kunit tests for depth counts
Date: Sun, 10 Aug 2025 12:37:31 -0700	[thread overview]
Message-ID: <ded44edf-eeb7-420c-b8a8-d6543b955e6e@roeck-us.net> (raw)
In-Reply-To: <20250522210837.4135244-1-briannorris@chromium.org>

Hi Brian,

On Thu, May 22, 2025 at 02:08:01PM -0700, Brian Norris wrote:
> There have been a few bugs and/or misunderstandings about the reference
> counting, and startup/shutdown behaviors in the IRQ core and related CPU
> hotplug code. These 4 test cases try to capture a few interesting cases.
> 
> * irq_disable_depth_test: basic request/disable/enable sequence
> 
> * irq_free_disabled_test: request/disable/free/re-request sequence -
>   this catches errors on previous revisions of my work
> 
> * irq_cpuhotplug_test: exercises managed-affinity IRQ + CPU hotplug.
>   This captures a problematic test case that I've fixed.
>   This test requires CONFIG_SMP and a hotpluggable CPU#1.
> 
> * irq_shutdown_depth_test: exercises similar behavior from
>   irq_cpuhotplug_test, but directly using irq_*() APIs instead of going
>   through CPU hotplug. This still requires CONFIG_SMP, because
>   managed-affinity is stubbed out (and not all APIs are even present)
>   without it.
> 
> Note the use of 'imply SMP': ARCH=um doesn't support SMP, and kunit is
> often exercised there. Thus, 'imply' will force SMP on where possible
> (such as ARCH=x86_64), but leave it off where it's not.
> 
...
>  
> +config IRQ_KUNIT_TEST
> +	bool "KUnit tests for IRQ management APIs" if !KUNIT_ALL_TESTS
> +	depends on KUNIT=y
> +	default KUNIT_ALL_TESTS
> +	imply SMP
> +	help
> +	  This option enables KUnit tests for the IRQ subsystem API. These are
> +	  only for development and testing, not for regular kernel use cases.
> +
> +	  If unsure, say N.
> +

The new code calls irq_domain_alloc_descs(), making it dependent
on IRQ_DOMAIN. However, specifying that dependency directly is not
possible:

 config IRQ_KUNIT_TEST
        bool "KUnit tests for IRQ management APIs" if !KUNIT_ALL_TESTS
        depends on KUNIT=y
+       depends on IRQ_DOMAIN
        default KUNIT_ALL_TESTS
        imply SMP
        help

results in:

*** Default configuration is based on 'defconfig'
error: recursive dependency detected!
	symbol SMP is implied by IRQ_KUNIT_TEST
	symbol IRQ_KUNIT_TEST depends on IRQ_DOMAIN
	symbol IRQ_DOMAIN is selected by IRQ_DOMAIN_HIERARCHY
	symbol IRQ_DOMAIN_HIERARCHY is selected by GENERIC_IRQ_IPI
	symbol GENERIC_IRQ_IPI depends on SMP

This is seen with alpha configurations such as alpha:defconfig after
adding the IRQ_DOMAIN dependency.

I have no idea how to resolve this. For now I disabled IRQ_KUNIT_TEST
for my alpha test builds.

Guenter

  parent reply	other threads:[~2025-08-10 19:37 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-05-22 21:08 Brian Norris
2025-06-13 13:34 ` [tip: irq/core] " tip-bot2 for Brian Norris
2025-08-05 17:45 ` [PATCH v4] " Guenter Roeck
2025-08-05 18:32   ` [PATCH] genirq/test: Resolve irq lock inversion warnings Brian Norris
2025-08-05 19:54     ` Guenter Roeck
2025-08-06  8:33     ` [tip: irq/urgent] " tip-bot2 for Brian Norris
2025-08-10 19:37 ` Guenter Roeck [this message]
2025-08-15 17:58   ` [PATCH v4] genirq: Add kunit tests for depth counts Brian Norris
2025-08-16  0:24     ` Guenter Roeck
2025-08-16  2:23       ` 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=ded44edf-eeb7-420c-b8a8-d6543b955e6e@roeck-us.net \
    --to=linux@roeck-us.net \
    --cc=briannorris@chromium.org \
    --cc=danielsftsai@google.com \
    --cc=dianders@chromium.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=tglx@linutronix.de \
    /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

all inboxes | Powered by JetHome®