[PATCH v2 6/6] genirq/test: Ensure CPU 1 is online for hotplug test

Brian Norris posted 6 patches 1 month, 1 week ago
[PATCH v2 6/6] genirq/test: Ensure CPU 1 is online for hotplug test
Posted by Brian Norris 1 month, 1 week ago
It's possible to run these tests on platforms that think they have a
hotpluggable CPU1, but for whatever reason, CPU1 is not online and can't
be brought online:

    # irq_cpuhotplug_test: EXPECTATION FAILED at kernel/irq/irq_test.c:210
    Expected remove_cpu(1) == 0, but
        remove_cpu(1) == 1 (0x1)
CPU1: failed to boot: -38
    # irq_cpuhotplug_test: EXPECTATION FAILED at kernel/irq/irq_test.c:214
    Expected add_cpu(1) == 0, but
        add_cpu(1) == -38 (0xffffffffffffffda)

Check that CPU1 is actually online before trying to run the test.

Fixes: 66067c3c8a1e ("genirq: Add kunit tests for depth counts")
Reported-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Brian Norris <briannorris@chromium.org>
Reviewed-by: David Gow <davidgow@google.com>
---

(no changes since v1)

 kernel/irq/irq_test.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/kernel/irq/irq_test.c b/kernel/irq/irq_test.c
index bbb89a3e1153..e2d31914b3c4 100644
--- a/kernel/irq/irq_test.c
+++ b/kernel/irq/irq_test.c
@@ -179,6 +179,8 @@ static void irq_cpuhotplug_test(struct kunit *test)
 		kunit_skip(test, "requires more than 1 CPU for CPU hotplug");
 	if (!cpu_is_hotpluggable(1))
 		kunit_skip(test, "CPU 1 must be hotpluggable");
+	if (!cpu_online(1))
+		kunit_skip(test, "CPU 1 must be online");
 
 	cpumask_copy(&affinity.mask, cpumask_of(1));
 
-- 
2.51.0.rc2.233.g662b1ed5c5-goog
Re: [PATCH v2 6/6] genirq/test: Ensure CPU 1 is online for hotplug test
Posted by Guenter Roeck 1 month, 1 week ago
On Fri, Aug 22, 2025 at 11:59:07AM -0700, Brian Norris wrote:
> It's possible to run these tests on platforms that think they have a
> hotpluggable CPU1, but for whatever reason, CPU1 is not online and can't
> be brought online:
> 
>     # irq_cpuhotplug_test: EXPECTATION FAILED at kernel/irq/irq_test.c:210
>     Expected remove_cpu(1) == 0, but
>         remove_cpu(1) == 1 (0x1)
> CPU1: failed to boot: -38
>     # irq_cpuhotplug_test: EXPECTATION FAILED at kernel/irq/irq_test.c:214
>     Expected add_cpu(1) == 0, but
>         add_cpu(1) == -38 (0xffffffffffffffda)
> 
> Check that CPU1 is actually online before trying to run the test.
> 
> Fixes: 66067c3c8a1e ("genirq: Add kunit tests for depth counts")
> Reported-by: Guenter Roeck <linux@roeck-us.net>
> Signed-off-by: Brian Norris <briannorris@chromium.org>
> Reviewed-by: David Gow <davidgow@google.com>

Tested-by: Guenter Roeck <linux@roeck-us.net>

> ---
> 
> (no changes since v1)
> 
>  kernel/irq/irq_test.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/kernel/irq/irq_test.c b/kernel/irq/irq_test.c
> index bbb89a3e1153..e2d31914b3c4 100644
> --- a/kernel/irq/irq_test.c
> +++ b/kernel/irq/irq_test.c
> @@ -179,6 +179,8 @@ static void irq_cpuhotplug_test(struct kunit *test)
>  		kunit_skip(test, "requires more than 1 CPU for CPU hotplug");
>  	if (!cpu_is_hotpluggable(1))
>  		kunit_skip(test, "CPU 1 must be hotpluggable");
> +	if (!cpu_online(1))
> +		kunit_skip(test, "CPU 1 must be online");
>  
>  	cpumask_copy(&affinity.mask, cpumask_of(1));
>  
> -- 
> 2.51.0.rc2.233.g662b1ed5c5-goog
>
[tip: irq/core] genirq/test: Ensure CPU 1 is online for hotplug test
Posted by tip-bot2 for Brian Norris 1 month ago
The following commit has been merged into the irq/core branch of tip:

Commit-ID:     8ad25ebfa70e86860559b306bbc923c7db4fcac6
Gitweb:        https://git.kernel.org/tip/8ad25ebfa70e86860559b306bbc923c7db4fcac6
Author:        Brian Norris <briannorris@chromium.org>
AuthorDate:    Fri, 22 Aug 2025 11:59:07 -07:00
Committer:     Thomas Gleixner <tglx@linutronix.de>
CommitterDate: Wed, 03 Sep 2025 17:04:52 +02:00

genirq/test: Ensure CPU 1 is online for hotplug test

It's possible to run these tests on platforms that think they have a
hotpluggable CPU1, but for whatever reason, CPU1 is not online and can't be
brought online:

    # irq_cpuhotplug_test: EXPECTATION FAILED at kernel/irq/irq_test.c:210
    Expected remove_cpu(1) == 0, but
        remove_cpu(1) == 1 (0x1)
CPU1: failed to boot: -38
    # irq_cpuhotplug_test: EXPECTATION FAILED at kernel/irq/irq_test.c:214
    Expected add_cpu(1) == 0, but
        add_cpu(1) == -38 (0xffffffffffffffda)

Check that CPU1 is actually online before trying to run the test.

Fixes: 66067c3c8a1e ("genirq: Add kunit tests for depth counts")
Reported-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Brian Norris <briannorris@chromium.org>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Tested-by: Guenter Roeck <linux@roeck-us.net>
Reviewed-by: David Gow <davidgow@google.com>
Link: https://lore.kernel.org/all/20250822190140.2154646-7-briannorris@chromium.org

---
 kernel/irq/irq_test.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/kernel/irq/irq_test.c b/kernel/irq/irq_test.c
index bbb89a3..e2d3191 100644
--- a/kernel/irq/irq_test.c
+++ b/kernel/irq/irq_test.c
@@ -179,6 +179,8 @@ static void irq_cpuhotplug_test(struct kunit *test)
 		kunit_skip(test, "requires more than 1 CPU for CPU hotplug");
 	if (!cpu_is_hotpluggable(1))
 		kunit_skip(test, "CPU 1 must be hotpluggable");
+	if (!cpu_online(1))
+		kunit_skip(test, "CPU 1 must be online");
 
 	cpumask_copy(&affinity.mask, cpumask_of(1));