Subject: Re: linux-next: build failure after merge of the mm-nonmm-unstable tree

From: Mathieu Desnoyers <[email-masked]>
Date: Tue, 17 Mar 2026 11:06:50 -0400

On 2026-03-17 10:32, Mark Brown wrote:
> Hi all,
> 
> After merging the mm-unstable tree, today's linux-next build (arm64
> kunit) failed like this:
> 
> [13:30:42] # hpcc_test_compare_value_boundaries: EXPECTATION FAILED at lib/tests/percpu_counter_tree_kunit.c:157
> [13:30:42] Expected 1 == percpu_counter_tree_precise_compare_value(&pct, (long)under), but
> [13:30:42]     percpu_counter_tree_precise_compare_value(&pct, (long)under) == 0 (0x0)
> [13:30:42] # hpcc_test_compare_value_boundaries: EXPECTATION FAILED at lib/tests/percpu_counter_tree_kunit.c:160
> [13:30:42] Expected -1 == percpu_counter_tree_precise_compare_value(&pct, -(long)over), but
> [13:30:42]     percpu_counter_tree_precise_compare_value(&pct, -(long)over) == 0 (0x0)
> [13:30:42] [FAILED] hpcc_test_compare_value_boundaries
> [13:30:42] # hpcc_test_compare_counter_boundaries: EXPECTATION FAILED at lib/tests/percpu_counter_tree_kunit.c:246
> [13:30:42] Expected 1 == percpu_counter_tree_precise_compare(&pct[0], &pct[1]), but
> [13:30:42]     percpu_counter_tree_precise_compare(&pct[0], &pct[1]) == 0 (0x0)
> [13:30:42] # hpcc_test_compare_counter_boundaries: EXPECTATION FAILED at lib/tests/percpu_counter_tree_kunit.c:251
> [13:30:42] Expected -1 == percpu_counter_tree_precise_compare(&pct[0], &pct[1]), but
> [13:30:42]     percpu_counter_tree_precise_compare(&pct[0], &pct[1]) == 0 (0x0)
> [13:30:42] [FAILED] hpcc_test_compare_counter_boundaries
> [13:30:42] [PASSED] hpcc_test_init_one
> [13:30:42] [PASSED] hpcc_test_set
> [13:30:42]     # module: percpu_counter_tree_kunit
> [13:30:42] # percpu_counter_tree: pass:8 fail:2 skip:0 total:10
> 
> ...
> 
> [13:30:47] Testing complete. Ran 9088 tests: passed: 9015, failed: 2, skipped: 71
> [13:30:47] Failures: percpu_counter_tree.hpcc_test_compare_value_boundaries, percpu_counter_tree.hpcc_test_compare_counter_boundaries
> 
> Triggered by commit
> 
>    ebc1ff504f557 (lib: add kunit boundary tests for percpu_counter_tree comparisons)
> 
> though as it's a newly added test it's obviously entirely plausible that
> it's flagging an existing bug.  I used the tree from next-20260316
> instead.

I've been able to reproduce with 1 cpu:

branch: mm-unstable
commit dffde584d805 ("zram: propagate read_from_bdev_async() errors")

cat .kunit/.kunitconfig
CONFIG_KUNIT=y
CONFIG_SMP=y
CONFIG_PREEMPT=y
CONFIG_NR_CPUS=32
CONFIG_HOTPLUG_CPU=y
CONFIG_PERCPU_COUNTER_TREE_TEST=y

/tools/testing/kunit/kunit.py run --arch=x86_64 --qemu_args="-smp 1"

[10:48:04] Configuring KUnit Kernel ...
[10:48:04] Building KUnit Kernel ...
Populating config with:
$ make ARCH=x86_64 O=.kunit olddefconfig
Building with:
$ make all compile_commands.json scripts_gdb ARCH=x86_64 O=.kunit --jobs=384
[10:48:07] Starting KUnit Kernel (1/1)...
[10:48:07] ============================================================
Running tests with:
$ qemu-system-x86_64 -nodefaults -m 1024 -kernel .kunit/arch/x86/boot/bzImage -append 'kunit.enable=1 console=ttyS0 kunit_shutdown=reboot' -no-reboot -nographic -accel kvm -accel hvf -accel tcg -serial stdio -bios qboot.rom -smp 1
[10:48:08] ============ percpu_counter_tree (10 subtests) =============
[10:48:08] [PASSED] hpcc_print_info
[10:48:15] [PASSED] hpcc_test_single_thread_first
[10:48:19] [PASSED] hpcc_test_single_thread_first_random
[10:48:19] [PASSED] hpcc_test_single_thread_random
[10:48:34] [PASSED] hpcc_test_multi_thread_batch_increment
[10:48:34] [PASSED] hpcc_test_multi_thread_random_walk
[10:48:34] # hpcc_test_compare_value_boundaries: EXPECTATION FAILED at lib/tests/percpu_counter_tree_kunit.c:157
[10:48:34] Expected 1 == percpu_counter_tree_precise_compare_value(&pct, (long)under), but
[10:48:34]     percpu_counter_tree_precise_compare_value(&pct, (long)under) == 0 (0x0)
[10:48:34] # hpcc_test_compare_value_boundaries: EXPECTATION FAILED at lib/tests/percpu_counter_tree_kunit.c:160
[10:48:34] Expected -1 == percpu_counter_tree_precise_compare_value(&pct, -(long)over), but
[10:48:34]     percpu_counter_tree_precise_compare_value(&pct, -(long)over) == 0 (0x0)
[10:48:34] [FAILED] hpcc_test_compare_value_boundaries
[10:48:34] # hpcc_test_compare_counter_boundaries: EXPECTATION FAILED at lib/tests/percpu_counter_tree_kunit.c:246
[10:48:34] Expected 1 == percpu_counter_tree_precise_compare(&pct[0], &pct[1]), but
[10:48:34]     percpu_counter_tree_precise_compare(&pct[0], &pct[1]) == 0 (0x0)
[10:48:34] # hpcc_test_compare_counter_boundaries: EXPECTATION FAILED at lib/tests/percpu_counter_tree_kunit.c:251
[10:48:34] Expected -1 == percpu_counter_tree_precise_compare(&pct[0], &pct[1]), but
[10:48:34]     percpu_counter_tree_precise_compare(&pct[0], &pct[1]) == 0 (0x0)
[10:48:34] [FAILED] hpcc_test_compare_counter_boundaries
[10:48:34] [PASSED] hpcc_test_init_one
[10:48:34] [PASSED] hpcc_test_set
[10:48:34]     # module: percpu_counter_tree_kunit
[10:48:34] # percpu_counter_tree: pass:8 fail:2 skip:0 total:10
[10:48:34] # Totals: pass:8 fail:2 skip:0 total:10
[10:48:34] =============== [FAILED] percpu_counter_tree ===============
[10:48:34] ============================================================
[10:48:34] Testing complete. Ran 10 tests: passed: 8, failed: 2
[10:48:34] Elapsed time: 30.726s total, 0.001s configuring, 3.074s building, 27.600s running

Thanks,

Mathieu

-- 
Mathieu Desnoyers
EfficiOS Inc.
https://www.efficios.com