[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <aJ_rt6AORXs6RTGI@google.com>
Date: Fri, 15 Aug 2025 19:23:51 -0700
From: Brian Norris <briannorris@...omium.org>
To: Guenter Roeck <linux@...ck-us.net>
Cc: Thomas Gleixner <tglx@...utronix.de>,
Tsai Sung-Fu <danielsftsai@...gle.com>,
Douglas Anderson <dianders@...omium.org>,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH v4] genirq: Add kunit tests for depth counts
On Fri, Aug 15, 2025 at 05:24:24PM -0700, Guenter Roeck wrote:
> I can try, but the irq test code fails for me all over the place, so I am
> not sure if it is worth it.
>
> From my current upstream test results (6.17-rc1):
>
> Build results:
> total: 162 pass: 162 fail: 0
> Qemu test results:
> total: 637 pass: 637 fail: 0
> Unit test results:
> pass: 640017 fail: 649
>
> The failures are all from the irq test code. I didn't have time to analyze it.
> You can find details at https://kerneltests.org/builders in the "master" column
> if you have time.
I can't replicate all of those easily, since I don't have tooling ready
for some of the more esoteric architectures. But many of those look like
they boil down to a single oversight: that some architectures default to
IRQ_NOREQUEST, and so I need to throw this onto the fake IRQs I set up:
irq_settings_clr_norequest(desc);
With that, I can pass on ARCH=arm:
tools/testing/kunit/kunit.py run 'irq_test_cases*' --arch arm \
--qemu_args '-smp 2' --cross_compile arm-linux-gnueabi-
I'm less sure about the ARCH=parisc{,64} ones, but I think that boils
down to missing CONFIG_SPARSE_IRQ. I think I can skip tests in the
!SPARSE_IRQ case.
> Note that "imply SMP" does not make SMP mandatory. I can still disable it after
> enabling IRQ_KUNIT_TEST on x86.
Right, that's intentional. There are a few CONFIG_SMP-conditional bits
in the tests, since many users likely run on ARCH=um, which does not
have an SMP build.
> Frankly I don't really understand what "imply"
> is supposed to be useful for.
Documentation/kbuild/kconfig-language.rst calls it a "weak reverse
dependency" (i.e., a weak "select") and:
This is useful e.g. with multiple drivers that want to indicate their
ability to hook into a secondary subsystem while allowing the user to
configure that subsystem out without also having to unset these drivers.
Basically, I want SMP when it's available, but I don't want to force it
when not. And it means on KUNIT_ALL_TESTS builds that otherwise didn't
make an opinionated choice for CONFIG_SMP, we get CONFIG_SMP=y. The
latter point is relevant to tools/testing/kunit/kunit.py.
I have a patch series to clean up a little while fixing the errors
you've pointed me at. I'll probably send it out next week.
Thanks,
Brian
Powered by blists - more mailing lists