Le 29/04/2026 à 13:45, Erhard Furtner a écrit :
> Greetings!
>
> Getting this on my G4 DP on kernel v7.0.2 and v7.1-rc1 via 'modprobe -v
> kunit_iov_iter':
>
> [...]
> KTAP version 1
> 1..1
> KTAP version 1
> # Subtest: iov_iter
> # module: kunit_iov_iter
> 1..12
> # iov_kunit_copy_to_kvec: ASSERTION FAILED at lib/tests/
> kunit_iov_iter.c:63
> Expected got == npages, but
> got == 1 (0x1)
> npages == 256 (0x100)
> not ok 1 iov_kunit_copy_to_kvec
This happens in alloc_pages_bulk_noprof(), due to
pcp = pcp_spin_trylock(zone->per_cpu_pageset);
if (!pcp)
goto failed;
Because:
#ifdef CONFIG_SMP
[...]
/*
* On CONFIG_SMP=n the UP implementation of spin_trylock() never fails
and thus
* is not compatible with our locking scheme. However we do not need
pcp for
* scalability in the first place, so just make all the trylocks fail
and take
* the slow path unconditionally.
*/
#else
#define pcp_spin_trylock(ptr) \
NULL
So apparently it is expected that alloc_pages_bulk() returns 1 on non-SMP.
Christophe
> # iov_kunit_copy_from_kvec: ASSERTION FAILED at lib/tests/
> kunit_iov_iter.c:63
> Expected got == npages, but
> got == 1 (0x1)
> npages == 256 (0x100)
> not ok 2 iov_kunit_copy_from_kvec
> # iov_kunit_copy_to_bvec: ASSERTION FAILED at lib/tests/
> kunit_iov_iter.c:63
> Expected got == npages, but
> got == 1 (0x1)
> npages == 256 (0x100)
> not ok 3 iov_kunit_copy_to_bvec
> # iov_kunit_copy_from_bvec: ASSERTION FAILED at lib/tests/
> kunit_iov_iter.c:63
> Expected got == npages, but
> got == 1 (0x1)
> npages == 256 (0x100)
> not ok 4 iov_kunit_copy_from_bvec
> # iov_kunit_copy_to_folioq: ASSERTION FAILED at lib/tests/
> kunit_iov_iter.c:63
> Expected got == npages, but
> got == 1 (0x1)
> npages == 256 (0x100)
> not ok 5 iov_kunit_copy_to_folioq
> # iov_kunit_copy_from_folioq: ASSERTION FAILED at lib/tests/
> kunit_iov_iter.c:63
> Expected got == npages, but
> got == 1 (0x1)
> npages == 256 (0x100)
> not ok 6 iov_kunit_copy_from_folioq
> # iov_kunit_copy_to_xarray: ASSERTION FAILED at lib/tests/
> kunit_iov_iter.c:63
> Expected got == npages, but
> got == 1 (0x1)
> npages == 256 (0x100)
> not ok 7 iov_kunit_copy_to_xarray
> # iov_kunit_copy_from_xarray: ASSERTION FAILED at lib/tests/
> kunit_iov_iter.c:63
> Expected got == npages, but
> got == 1 (0x1)
> npages == 256 (0x100)
> not ok 8 iov_kunit_copy_from_xarray
> # iov_kunit_extract_pages_kvec: ASSERTION FAILED at lib/tests/
> kunit_iov_iter.c:63
> Expected got == npages, but
> got == 1 (0x1)
> npages == 256 (0x100)
> not ok 9 iov_kunit_extract_pages_kvec
> # iov_kunit_extract_pages_bvec: ASSERTION FAILED at lib/tests/
> kunit_iov_iter.c:63
> Expected got == npages, but
> got == 1 (0x1)
> npages == 256 (0x100)
> not ok 10 iov_kunit_extract_pages_bvec
> # iov_kunit_extract_pages_folioq: ASSERTION FAILED at lib/tests/
> kunit_iov_iter.c:63
> Expected got == npages, but
> got == 1 (0x1)
> npages == 256 (0x100)
> not ok 11 iov_kunit_extract_pages_folioq
> # iov_kunit_extract_pages_xarray: ASSERTION FAILED at lib/tests/
> kunit_iov_iter.c:63
> Expected got == npages, but
> got == 1 (0x1)
> npages == 256 (0x100)
> not ok 12 iov_kunit_extract_pages_xarray
> # iov_iter: pass:0 fail:12 skip:0 total:12
> # Totals: pass:0 fail:12 skip:0 total:12
> not ok 1 iov_iter
>
>
> Suppose this may be a ppc/BE specific test failure as I don't get it on
> my Thinkpad T60 (x86).
>
> Full dmesg and kernel .config available on request.
>
> Greetings,
> Erhard
>