Spurious problems when running regmap unit tests in qemu

From: Guenter Roeck
Date: Mon Feb 05 2024 - 13:03:13 EST


Hi,

I am observing spurious regmap unit test failures in my qemu test runs.
Examples:

# raw_noinc_write: ASSERTION FAILED at drivers/base/regmap/regmap-kunit.c:1243
Expected val_test == val, but
val_test == 65581 (0x1002d)
val == 45 (0x2d)
not ok 8 maple-big
# raw_noinc_write: pass:7 fail:1 skip:0 total:8

or

# raw_noinc_write: ASSERTION FAILED at drivers/base/regmap/regmap-kunit.c:1243
Expected val_test == val, but
val_test == 65556 (0x10014)
val == 20 (0x14)
not ok 5 rbtree-little
ok 6 rbtree-big
ok 7 maple-little
ok 8 maple-big
# raw_noinc_write: pass:7 fail:1 skip:0 total:8

The problem is not seen all the time. I see it with various qemu machines,
but not always the same. Endianness does not seem to make a difference.
The failure is always in raw_noinc_write. So far, I have observed the
following individual test failures:

not ok 2 none-big
not ok 4 flat-big
not ok 5 rbtree-little
not ok 8 maple-big

The most recent test run (on v6.8-rc3) failed on the following
architectures and machines (again, those are not always the same).

arm:npcm750-evb:regmap
mips:malta:regmap
mipsel64:malta:regmap
i386:q35:regmap

I only recently started to track unit test failures, so I don't know yet
if this problem has been introduced recently or if it has existed since
the tests were introduced.

Any idea how to debug this problem would be welcome. I'll try to bisect,
but of course that will only help if the problem was introduced recently.

Thanks,
Guenter