Re: linux-next: build failure after merge of the mm-nonmm-unstable tree
From: David CARLIER
Date: Tue Mar 17 2026 - 11:13:42 EST
Hi all I ve send a patch to all involved parties. Cheers.
On Tue, 17 Mar 2026 at 15:06, Mathieu Desnoyers
<mathieu.desnoyers@xxxxxxxxxxxx> wrote:
>
> 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