On Wed, 19 Feb 2025 at 15:00, Alex Bennée <[email protected]> wrote:
>
> Hi,
>
> As I was looking at the native context patches I realised our existing
> GPU testing is a little sparse. I took the opportunity to split the
> test from the main virt test and then extend it to exercise the 3
> current display modes (virgl, virgl+blobs, vulkan).
>
> I've added some additional validation to ensure we have the devices we
> expect before we start. It doesn't currently address the reported
> clang issues but hopefully it will help narrow down what fails and
> what works.

Running on my setup with a clang sanitizer build I get

ok 1 
test_aarch64_virt_gpu.Aarch64VirtGPUMachine.test_aarch64_virt_with_virgl_blobs_gpu
ok 2 
test_aarch64_virt_gpu.Aarch64VirtGPUMachine.test_aarch64_virt_with_virgl_gpu

and then the third test timed out.

For the timing out case, the console prints


2025-02-20 11:12:55,208: # weston -B headless --renderer gl --shell
kiosk -- vkmark -b:duration=1.0
2025-02-20 11:12:55,288: Date: 2025-02-20 UTC
2025-02-20 11:12:55,288: [11:12:54.841] weston 14.0.0
2025-02-20 11:12:55,289: https://wayland.freedesktop.org
2025-02-20 11:12:55,289: Bug reports to:
https://gitlab.freedesktop.org/wayland/weston/issues/
2025-02-20 11:12:55,289: Build: 14.0.0
2025-02-20 11:12:55,291: [11:12:54.847] Command line: weston -B
headless --renderer gl --shell kiosk -- vkmark -b:duration=1.0
2025-02-20 11:12:55,298: [11:12:54.850] OS: Linux, 6.11.10, #2 SMP Thu
Dec  5 16:27:12 GMT 2024, aarch64
2025-02-20 11:12:55,299: [11:12:54.855] Flight recorder: enabled
2025-02-20 11:12:55,300: [11:12:54.857] warning: XDG_RUNTIME_DIR
"/tmp" is not configured
2025-02-20 11:12:55,301: correctly.  Unix access mode must be 0700
(current mode is 0777),
2025-02-20 11:12:55,301: and must be owned by the user UID 0 (current
owner is UID 0).
2025-02-20 11:12:55,302: Refer to your distribution on how to get it, or
2025-02-20 11:12:55,302:
http://www.freedesktop.org/wiki/Specifications/basedir-spec
2025-02-20 11:12:55,302: on how to implement it.
2025-02-20 11:12:55,308: [11:12:54.865] Starting with no config file.
2025-02-20 11:12:55,322: [11:12:54.879] Output repaint window is 7 ms maximum.
2025-02-20 11:12:55,333: [11:12:54.890] Loading module
'/usr/lib/libweston-14/headless-backend.so'
2025-02-20 11:12:55,407: [11:12:54.963] Loading module
'/usr/lib/libweston-14/gl-renderer.so'
2025-02-20 11:13:06,936: [11:13:06.491] Using rendering device:
/dev/dri/renderD128
2025-02-20 11:13:07,083: [11:13:06.640] EGL version: 1.5
2025-02-20 11:13:07,084: [11:13:06.641] EGL vendor: Mesa Project
2025-02-20 11:13:07,085: [11:13:06.641] EGL client APIs: OpenGL OpenGL_ES
2025-02-20 11:13:07,088: [11:13:06.645] EGL features:
2025-02-20 11:13:07,089: EGL Wayland extension: yes
2025-02-20 11:13:07,089: context priority: no
2025-02-20 11:13:07,089: buffer age: no
2025-02-20 11:13:07,089: partial update: no
2025-02-20 11:13:07,090: swap buffers with damage: no
2025-02-20 11:13:07,090: configless context: yes
2025-02-20 11:13:07,090: surfaceless context: yes
2025-02-20 11:13:07,090: dmabuf support: modifiers
2025-02-20 11:13:07,206: [11:13:06.763] GL version: OpenGL ES 3.2 Mesa 24.3.0
2025-02-20 11:13:07,207: [11:13:06.764] GLSL version: OpenGL ES GLSL ES 3.20
2025-02-20 11:13:07,207: [11:13:06.764] GL vendor: Mesa
2025-02-20 11:13:07,208: [11:13:06.764] GL renderer: virgl (Quadro
P400/PCIe/SSE2)
2025-02-20 11:13:08,201: [11:13:07.757] GL ES 3.2 - renderer features:
2025-02-20 11:13:08,202: read-back format: ARGB8888
2025-02-20 11:13:08,203: glReadPixels supports y-flip: yes
2025-02-20 11:13:08,203: glReadPixels supports PBO: yes
2025-02-20 11:13:08,204: wl_shm 10 bpc formats: yes
2025-02-20 11:13:08,204: wl_shm 16 bpc formats: yes
2025-02-20 11:13:08,205: wl_shm half-float formats: yes
2025-02-20 11:13:08,206: internal R and RG formats: yes
2025-02-20 11:13:08,209: OES_EGL_image_external: yes
2025-02-20 11:13:08,210: [11:13:07.767] Using GL renderer
2025-02-20 11:13:08,211: [11:13:07.768] Registered plugin API
'weston_windowed_output_api_headless_v2' of size 16
2025-02-20 11:13:08,215: [11:13:07.772] Color manager: no-op
2025-02-20 11:13:08,216: protocol support: no
2025-02-20 11:13:08,226: [11:13:07.782] Output 'headless' attempts
EOTF mode SDR and colorimetry mode default.
2025-02-20 11:13:08,227: [11:13:07.784] Output 'headless' using color
profile: stock sRGB color profile

and that's the last thing it outputs.

The sanitizer reports that when the framework sends the SIGTERM
because of the timeout we get a write to a NULL pointer (but
interesting not this time in an atexit callback):

UndefinedBehaviorSanitizer:DEADLYSIGNAL
==471863==ERROR: UndefinedBehaviorSanitizer: SEGV on unknown address
0x000000000000 (pc 0x7a18ceaafe80 bp 0x000000000000 sp 0x7ffe8e3ff6d0
T471863)
==471863==The signal is caused by a WRITE memory access.
==471863==Hint: address points to the zero page.
    #0 0x7a18ceaafe80
(/lib/x86_64-linux-gnu/libnvidia-eglcore.so.535.183.01+0x16afe80)
(BuildId: 24b0d0b90369112e3de888a93eb8d7e00304a6db)
    #1 0x7a18ce9e72c0
(/lib/x86_64-linux-gnu/libnvidia-eglcore.so.535.183.01+0x15e72c0)
(BuildId: 24b0d0b90369112e3de888a93eb8d7e00304a6db)
    #2 0x7a18ce9f11bb
(/lib/x86_64-linux-gnu/libnvidia-eglcore.so.535.183.01+0x15f11bb)
(BuildId: 24b0d0b90369112e3de888a93eb8d7e00304a6db)
    #3 0x7a18ce6dc9d1
(/lib/x86_64-linux-gnu/libnvidia-eglcore.so.535.183.01+0x12dc9d1)
(BuildId: 24b0d0b90369112e3de888a93eb8d7e00304a6db)
    #4 0x7a18e7d15326 in vrend_renderer_create_fence
/usr/src/virglrenderer-1.0.0-1ubuntu2/obj-x86_64-linux-gnu/../src/vrend_renderer.c:10883:26
    #5 0x55bfb6621871 in virtio_gpu_virgl_process_cmd
/mnt/nvmedisk/linaro/qemu-from-laptop/qemu/build/arm-clang/../../hw/display/virtio-gpu-virgl.c:973:5
    #6 0x55bfb66086ba in virtio_gpu_process_cmdq
/mnt/nvmedisk/linaro/qemu-from-laptop/qemu/build/arm-clang/../../hw/display/virtio-gpu.c:1048:9
    #7 0x55bfb661b69b in virtio_gpu_gl_handle_ctrl
/mnt/nvmedisk/linaro/qemu-from-laptop/qemu/build/arm-clang/../../hw/display/virtio-gpu-gl.c:100:5
    #8 0x55bfb74a7782 in aio_bh_call
/mnt/nvmedisk/linaro/qemu-from-laptop/qemu/build/arm-clang/../../util/async.c:172:5
    #9 0x55bfb74a7b58 in aio_bh_poll
/mnt/nvmedisk/linaro/qemu-from-laptop/qemu/build/arm-clang/../../util/async.c:219:13
    #10 0x55bfb74625ea in aio_dispatch
/mnt/nvmedisk/linaro/qemu-from-laptop/qemu/build/arm-clang/../../util/aio-posix.c:424:5
    #11 0x55bfb74aaaea in aio_ctx_dispatch
/mnt/nvmedisk/linaro/qemu-from-laptop/qemu/build/arm-clang/../../util/async.c:361:5
    #12 0x7a18e8dc15b4 in g_main_dispatch
/usr/src/glib2.0-2.80.0-6ubuntu3.2/debian/build/deb/../../../glib/gmain.c:3344:28
    #13 0x7a18e8dc16ff in g_main_context_dispatch_unlocked
/usr/src/glib2.0-2.80.0-6ubuntu3.2/debian/build/deb/../../../glib/gmain.c:4152:7
    #14 0x7a18e8dc16ff in g_main_context_dispatch
/usr/src/glib2.0-2.80.0-6ubuntu3.2/debian/build/deb/../../../glib/gmain.c:4140:3
    #15 0x55bfb74ab96b in glib_pollfds_poll
/mnt/nvmedisk/linaro/qemu-from-laptop/qemu/build/arm-clang/../../util/main-loop.c:287:9
    #16 0x55bfb74ab96b in os_host_main_loop_wait
/mnt/nvmedisk/linaro/qemu-from-laptop/qemu/build/arm-clang/../../util/main-loop.c:310:5
    #17 0x55bfb74ab96b in main_loop_wait
/mnt/nvmedisk/linaro/qemu-from-laptop/qemu/build/arm-clang/../../util/main-loop.c:589:11
    #18 0x55bfb64799e6 in qemu_main_loop
/mnt/nvmedisk/linaro/qemu-from-laptop/qemu/build/arm-clang/../../system/runstate.c:835:9
    #19 0x55bfb7340356 in qemu_default_main
/mnt/nvmedisk/linaro/qemu-from-laptop/qemu/build/arm-clang/../../system/main.c:48:14
    #20 0x55bfb734032e in main
/mnt/nvmedisk/linaro/qemu-from-laptop/qemu/build/arm-clang/../../system/main.c:76:9
    #21 0x7a18e6a2a1c9 in __libc_start_call_main
csu/../sysdeps/nptl/libc_start_call_main.h:58:16
    #22 0x7a18e6a2a28a in __libc_start_main csu/../csu/libc-start.c:360:3
    #23 0x55bfb59b6554 in _start
(/mnt/nvmedisk/linaro/qemu-from-laptop/qemu/build/arm-clang/qemu-system-aarch64+0x15dd554)
(BuildId: df0d680785eeda685de951dbbbbd220f5c9e773d)

UndefinedBehaviorSanitizer can not provide additional info.
SUMMARY: UndefinedBehaviorSanitizer: SEGV
(/lib/x86_64-linux-gnu/libnvidia-eglcore.so.535.183.01+0x16afe80)
(BuildId: 24b0d0b90369112e3de888a93eb8d7e00304a6db)
==471863==ABORTING



-- PMM

Reply via email to