[next] i386: kunit: ASSERTION FAILED at mm/kfence/kfence_test.c:547

From: Naresh Kamboju
Date: Fri Apr 29 2022 - 11:21:15 EST


Following kernel regressions have been noticed on Linux next-20220426
(till date) on qemu_i386. This is a special build with KFENCE and KUNIT enabled
but not KASAN on i386.

snippet of Kconfigs from the build:
CONFIG_CC_HAS_KASAN_GENERIC=y
CONFIG_KFENCE=y
CONFIG_KFENCE_KUNIT_TEST=y
CONFIG_KUNIT=y
CONFIG_KUNIT_DEBUGFS=y
CONFIG_KUNIT_TEST=y
CONFIG_KUNIT_EXAMPLE_TEST=y
CONFIG_KUNIT_ALL_TESTS=y

Reported-by: Linux Kernel Functional Testing <lkft@xxxxxxxxxx>

Regressions found on qemu_i386;:

- kunit/test_free_bulk
- kunit/test_memcache_typesafe_by_rcu
- kunit/test_out_of_bounds_read-memcache
- kunit/test_invalid_access
- kunit/test_krealloc
- kunit/test_invalid_addr_free
- kunit/test_gfpzero
- kunit/test_kmalloc_aligned_oob_write
- kunit/kfence
- kunit/test_out_of_bounds_read
- kunit/test_out_of_bounds_write
- kunit/test_invalid_addr_free-memcache
- kunit/test_double_free
- kunit/test_corruption-memcache
- kunit/test_use_after_free_read-memcache
- kunit/test_corruption
- kunit/test_use_after_free_read
- kunit/test_shrink_memcache
- kunit/test_double_free-memcache
- kunit/test_out_of_bounds_write-memcache
- kunit/test_kmalloc_aligned_oob_read


full test log link [1]

snippet of test log:
[ 4.168302] # test_free_bulk: test_alloc: size=271, gfp=cc0,
policy=right, cache=0
[ 4.271599] # test_free_bulk: test_alloc: size=271, gfp=cc0,
policy=none, cache=0
[ 4.271611] # test_free_bulk: test_alloc: size=271, gfp=cc0,
policy=left, cache=0
[ 4.687568] # test_free_bulk: test_alloc: size=271, gfp=cc0,
policy=none, cache=0
[ 4.687581] # test_free_bulk: test_alloc: size=271, gfp=cc0,
policy=none, cache=0
[ 4.687616] # test_free_bulk: ASSERTION FAILED at
mm/kfence/kfence_test.c:547
[ 4.687616] Expected report_available() to be false, but is true
[ 4.687789] not ok 13 - test_free_bulk
...
[ 33.294007] # test_memcache_typesafe_by_rcu: EXPECTATION FAILED
at mm/kfence/kfence_test.c:687
[ 33.294007] Expected report_matches(&expect) to be true, but is false
[ 33.294182] not ok 23 - test_memcache_typesafe_by_rcu
[ 33.294183] kunit_try_catch (209) used greatest stack depth: 5840 bytes left
[ 33.294619] # test_krealloc: test_alloc: size=32, gfp=cc0,
policy=any, cache=0
[ 33.391637] # test_krealloc: ASSERTION FAILED at
mm/kfence/kfence_test.c:724
[ 33.391637] Expected report_available() to be false, but is true
[ 33.391658] not ok 24 - test_krealloc
[ 33.391902] # test_memcache_alloc_bulk: setup_test_cache:
size=32, ctor=0x0
[ 33.495801] ok 25 - test_memcache_alloc_bulk
[ 33.495808] # kfence: pass:3 fail:20 skip:2 total:25
[ 33.495817] # Totals: pass:3 fail:20 skip:2 total:25
[ 33.495833] not ok 1 - kfence


metadata:
git_ref: master
git_repo: https://gitlab.com/Linaro/lkft/mirrors/next/linux-next
git_sha: 088fb7eff3496e0f61fdf68bda89b81a4d0a4434
git_describe: next-20220426
kernel-config: https://builds.tuxbuild.com/28KafYBlDWOxI3qyNmGDwb63GuX/config

--
Linaro LKFT
https://lkft.linaro.org

[1] https://lkft.validation.linaro.org/scheduler/job/4950383#L770
[2] https://qa-reports.linaro.org/lkft/linux-next-master/build/next-20220426/testrun/9235043/suite/kunit/test/test_use_after_free_read/log