Re: [PATCH v5] drm/test: add a test suite for GEM objects backed by shmem

From: Guenter Roeck
Date: Thu Feb 22 2024 - 13:36:57 EST


On Thu, Feb 22, 2024 at 05:33:48PM +0100, Marco Pagani wrote:
> >
> > In this context, the TTM unit tests fail as well in qemu, with worse result:
> > It seems there is some bad cleanup after a failed test case, causing list
> > corruptions in the drm core and ultimately a crash. I don't know if this
> > is also caused by the missing dma_mask initialization.
> >
>
> That's interesting. Which --arch argument are you using to run the
> tests with QEMU?

Example (I am not sure if any of those parameters matters; it is just one
of my tests):

qemu-system-x86_64 -kernel arch/x86/boot/bzImage -M q35 -cpu IvyBridge \
-no-reboot -snapshot -smp 2 \
-device e1000,netdev=net0 -netdev user,id=net0 -m 512 \
-drive file=rootfs.ext2,format=raw,if=ide \
--append "earlycon=uart8250,io,0x3f8,9600n8 root=/dev/sda1 console=ttyS0" \
-d unimp,guest_errors -nographic -monitor none

This results in:

[ ... ]
[ 5.989496] KTAP version 1
[ 5.989639] # Subtest: ttm_device
[ 5.989711] # module: ttm_device_test
[ 5.989760] 1..5
[ 6.002044] ok 1 ttm_device_init_basic
[ 6.013557] ok 2 ttm_device_init_multiple
ILLOPC: ffffffffb8ac9350: 0f 0b
[ 6.022481] ok 3 ttm_device_fini_basic
[ 6.026172] ------------[ cut here ]------------
[ 6.026315] WARNING: CPU: 1 PID: 1575 at drivers/gpu/drm/ttm/ttm_device.c:206 ttm_device_init+0x170/0x190
..
[ 6.135016] ok 3 Above the allocation limit
[ 6.138759] ------------[ cut here ]------------
[ 6.138925] WARNING: CPU: 1 PID: 1595 at kernel/dma/mapping.c:503 dma_alloc_attrs+0xf6/0x100
..
[ 6.143850] # ttm_pool_alloc_basic: ASSERTION FAILED at drivers/gpu/drm/ttm/tests/ttm_pool_test.c:162
[ 6.143850] Expected err == 0, but
[ 6.143850] err == -12 (0xfffffffffffffff4)
[ 6.148824] not ok 4 One page, with coherent DMA mappings enabled

>From there things go downhill.

[ 6.152821] list_add corruption. prev->next should be next (ffffffffbbd53950), but was 0000000000000000. (prev=ffff8af1c38f9e20).

and so on until the emulation crashes.

Guenter