lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <aKduHcYINJvMsB58@google.com>
Date: Thu, 21 Aug 2025 12:06:05 -0700
From: Brian Norris <briannorris@...omium.org>
To: Guenter Roeck <linux@...ck-us.net>
Cc: Thomas Gleixner <tglx@...utronix.de>, David Gow <davidgow@...gle.com>,
	linux-kernel@...r.kernel.org, kunit-dev@...glegroups.com
Subject: Re: [PATCH 0/6] genirq/test: Platform/architecture fixes

On Thu, Aug 21, 2025 at 10:02:52AM -0700, Guenter Roeck wrote:
> Build results:
> 	total: 162 pass: 162 fail: 0
> Qemu test results:
> 	total: 637 pass: 637 fail: 0
> Unit test results:
> 	pass: 640616 fail: 13
> Failed unit tests:
> 	arm64:imx8mp-evk:irq_cpuhotplug_test
> 	arm64:imx8mp-evk:irq_test_cases
> 	m68k:q800:irq_test_cases
> 	m68k:virt:irq_test_cases
> 
> Individual failures:
> 
> [   32.613761]     # irq_cpuhotplug_test: EXPECTATION FAILED at kernel/irq/irq_test.c:210
> [   32.613761]     Expected remove_cpu(1) == 0, but
> [   32.613761]         remove_cpu(1) == -16 (0xfffffffffffffff0)
> [   32.621522]     # irq_cpuhotplug_test: EXPECTATION FAILED at kernel/irq/irq_test.c:212
> [   32.621522]     Expected add_cpu(1) == 0, but
> [   32.621522]         add_cpu(1) == 1 (0x1)
> [   32.630930]     # irq_cpuhotplug_test: pass:0 fail:1 skip:0 total:1

I managed to get an imx8mp-evk setup running (both little and big
endian) and couldn't reproduce. But I'm guessing based on the logs that
we're racing with pci_call_probe(), which disables CPU hotplug
(cpu_hotplug_disable()) for its duration.

I'm not sure how to handle that.

1. I could just SKIP the test on EBUSY. But that'd make for flaky test
   coverage.
2. Expose some method to block cpu_hotplug_disable() users temporarily.
3. Stop trying to do CPU hotplug in a unit test. (It's bordering on
   "integration test"; but it's still useful IMO...)
4. Add an EBUSY retry loop? Or some other similar polling (if we had,
   say, a cpu_hotplug_disabled() API).

>     # irq_disable_depth_test: ASSERTION FAILED at kernel/irq/irq_test.c:53
>     Expected virq >= 0, but
>         virq == -12 (0xfffffffffffffff4)
>     # irq_disable_depth_test: pass:0 fail:1 skip:0 total:1
>     not ok 1 irq_disable_depth_test
>     # irq_free_disabled_test: ASSERTION FAILED at kernel/irq/irq_test.c:53
>     Expected virq >= 0, but
>         virq == -12 (0xfffffffffffffff4)
>     # irq_free_disabled_test: pass:0 fail:1 skip:0 total:1

We've discussed this one, and I have a fix (depends on SPARSE_IRQ).

Brian

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ