[PATCH] tests/functional/test_aarch64_virt_gpu: Skip test if EGL won't initialize

Peter Maydell posted 1 patch 2 months, 2 weeks ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20250826123455.2856988-1-peter.maydell@linaro.org
tests/functional/test_aarch64_virt_gpu.py | 2 ++
1 file changed, 2 insertions(+)
[PATCH] tests/functional/test_aarch64_virt_gpu: Skip test if EGL won't initialize
Posted by Peter Maydell 2 months, 2 weeks ago
If you are using the Nvidia drivers and have installed new versions
of those packages but have not yet rebooted the host kernel,
attempting to use the egl-headless display will cause QEMU to fail to
start with

$ qemu-system-aarch64 -M virt -display egl-headless
qemu-system-aarch64: egl: eglInitialize failed: EGL_NOT_INITIALIZED
qemu-system-aarch64: egl: render node init failed

together with this complaint in the host kernel dmesg:

[7874777.555649] NVRM: API mismatch: the client has the version 535.247.01, but
                 NVRM: this kernel module has the version 535.230.02.  Please
                 NVRM: make sure that this kernel module and all NVIDIA driver
                 NVRM: components have the same version.

This isn't a problem with QEMU itself, so reporting this as a test
failure is misleading.  Instead skip the tests, as we already do for
various other kinds of "host system can't actually run the EGL
display" situation.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
---
I run into this fairly often so I got fed up with just ignoring the
spurious test failure messages...
---
 tests/functional/test_aarch64_virt_gpu.py | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/tests/functional/test_aarch64_virt_gpu.py b/tests/functional/test_aarch64_virt_gpu.py
index 38447278579..4e50887c3e9 100755
--- a/tests/functional/test_aarch64_virt_gpu.py
+++ b/tests/functional/test_aarch64_virt_gpu.py
@@ -76,6 +76,8 @@ def _launch_virt_gpu(self, gpu_device):
                 self.skipTest("egl-headless support is not available")
             elif "'type' does not accept value 'dbus'" in excp.output:
                 self.skipTest("dbus display support is not available")
+            elif "eglInitialize failed: EGL_NOT_INITIALIZED" in excp.output:
+                self.skipTest("EGL failed to initialize on this host")
             else:
                 self.log.info("unhandled launch failure: %s", excp.output)
                 raise excp
-- 
2.43.0
Re: [PATCH] tests/functional/test_aarch64_virt_gpu: Skip test if EGL won't initialize
Posted by Akihiko Odaki 2 months, 2 weeks ago
On 2025/08/26 21:34, Peter Maydell wrote:
> If you are using the Nvidia drivers and have installed new versions
> of those packages but have not yet rebooted the host kernel,
> attempting to use the egl-headless display will cause QEMU to fail to
> start with
> 
> $ qemu-system-aarch64 -M virt -display egl-headless
> qemu-system-aarch64: egl: eglInitialize failed: EGL_NOT_INITIALIZED
> qemu-system-aarch64: egl: render node init failed
> 
> together with this complaint in the host kernel dmesg:
> 
> [7874777.555649] NVRM: API mismatch: the client has the version 535.247.01, but
>                   NVRM: this kernel module has the version 535.230.02.  Please
>                   NVRM: make sure that this kernel module and all NVIDIA driver
>                   NVRM: components have the same version.
> 
> This isn't a problem with QEMU itself, so reporting this as a test
> failure is misleading.  Instead skip the tests, as we already do for
> various other kinds of "host system can't actually run the EGL
> display" situation.
> 
> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Akihiko Odaki <odaki@rsg.ci.i.u-tokyo.ac.jp>
Re: [PATCH] tests/functional/test_aarch64_virt_gpu: Skip test if EGL won't initialize
Posted by Dmitry Osipenko 2 months, 2 weeks ago
On 8/26/25 15:34, Peter Maydell wrote:
> If you are using the Nvidia drivers and have installed new versions
> of those packages but have not yet rebooted the host kernel,
> attempting to use the egl-headless display will cause QEMU to fail to
> start with
> 
> $ qemu-system-aarch64 -M virt -display egl-headless
> qemu-system-aarch64: egl: eglInitialize failed: EGL_NOT_INITIALIZED
> qemu-system-aarch64: egl: render node init failed
> 
> together with this complaint in the host kernel dmesg:
> 
> [7874777.555649] NVRM: API mismatch: the client has the version 535.247.01, but
>                  NVRM: this kernel module has the version 535.230.02.  Please
>                  NVRM: make sure that this kernel module and all NVIDIA driver
>                  NVRM: components have the same version.
> 
> This isn't a problem with QEMU itself, so reporting this as a test
> failure is misleading.  Instead skip the tests, as we already do for
> various other kinds of "host system can't actually run the EGL
> display" situation.
> 
> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
> ---
> I run into this fairly often so I got fed up with just ignoring the
> spurious test failure messages...
> ---
>  tests/functional/test_aarch64_virt_gpu.py | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/tests/functional/test_aarch64_virt_gpu.py b/tests/functional/test_aarch64_virt_gpu.py
> index 38447278579..4e50887c3e9 100755
> --- a/tests/functional/test_aarch64_virt_gpu.py
> +++ b/tests/functional/test_aarch64_virt_gpu.py
> @@ -76,6 +76,8 @@ def _launch_virt_gpu(self, gpu_device):
>                  self.skipTest("egl-headless support is not available")
>              elif "'type' does not accept value 'dbus'" in excp.output:
>                  self.skipTest("dbus display support is not available")
> +            elif "eglInitialize failed: EGL_NOT_INITIALIZED" in excp.output:
> +                self.skipTest("EGL failed to initialize on this host")
>              else:
>                  self.log.info("unhandled launch failure: %s", excp.output)
>                  raise excp

Acked-by: Dmitry Osipenko <dmitry.osipenko@collabora.com>

-- 
Best regards,
Dmitry
Re: [PATCH] tests/functional/test_aarch64_virt_gpu: Skip test if EGL won't initialize
Posted by Alex Bennée 2 months, 2 weeks ago
Peter Maydell <peter.maydell@linaro.org> writes:

> If you are using the Nvidia drivers and have installed new versions
> of those packages but have not yet rebooted the host kernel,
> attempting to use the egl-headless display will cause QEMU to fail to
> start with
>
> $ qemu-system-aarch64 -M virt -display egl-headless
> qemu-system-aarch64: egl: eglInitialize failed: EGL_NOT_INITIALIZED
> qemu-system-aarch64: egl: render node init failed
>
> together with this complaint in the host kernel dmesg:
>
> [7874777.555649] NVRM: API mismatch: the client has the version 535.247.01, but
>                  NVRM: this kernel module has the version 535.230.02.  Please
>                  NVRM: make sure that this kernel module and all NVIDIA driver
>                  NVRM: components have the same version.
>
> This isn't a problem with QEMU itself, so reporting this as a test
> failure is misleading.  Instead skip the tests, as we already do for
> various other kinds of "host system can't actually run the EGL
> display" situation.
>
> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>

Acked-by: Alex Bennée <alex.bennee@linaro.org>

<snip>

-- 
Alex Bennée
Virtualisation Tech Lead @ Linaro
Re: [PATCH] tests/functional/test_aarch64_virt_gpu: Skip test if EGL won't initialize
Posted by Manos Pitsidianakis 2 months, 2 weeks ago
On Tue, Aug 26, 2025 at 3:36 PM Peter Maydell <peter.maydell@linaro.org> wrote:
>
> If you are using the Nvidia drivers and have installed new versions
> of those packages but have not yet rebooted the host kernel,
> attempting to use the egl-headless display will cause QEMU to fail to
> start with
>
> $ qemu-system-aarch64 -M virt -display egl-headless
> qemu-system-aarch64: egl: eglInitialize failed: EGL_NOT_INITIALIZED
> qemu-system-aarch64: egl: render node init failed


Could this error ever mean QEMU is doing something wrong in general? I
think not, but I'm not 100% certain. Better to skip it indeed.

Reviewed-by: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>

>
> together with this complaint in the host kernel dmesg:
>
> [7874777.555649] NVRM: API mismatch: the client has the version 535.247.01, but
>                  NVRM: this kernel module has the version 535.230.02.  Please
>                  NVRM: make sure that this kernel module and all NVIDIA driver
>                  NVRM: components have the same version.
>
> This isn't a problem with QEMU itself, so reporting this as a test
> failure is misleading.  Instead skip the tests, as we already do for
> various other kinds of "host system can't actually run the EGL
> display" situation.
>
> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
> ---
> I run into this fairly often so I got fed up with just ignoring the
> spurious test failure messages...
> ---
>  tests/functional/test_aarch64_virt_gpu.py | 2 ++
>  1 file changed, 2 insertions(+)
>
> diff --git a/tests/functional/test_aarch64_virt_gpu.py b/tests/functional/test_aarch64_virt_gpu.py
> index 38447278579..4e50887c3e9 100755
> --- a/tests/functional/test_aarch64_virt_gpu.py
> +++ b/tests/functional/test_aarch64_virt_gpu.py
> @@ -76,6 +76,8 @@ def _launch_virt_gpu(self, gpu_device):
>                  self.skipTest("egl-headless support is not available")
>              elif "'type' does not accept value 'dbus'" in excp.output:
>                  self.skipTest("dbus display support is not available")
> +            elif "eglInitialize failed: EGL_NOT_INITIALIZED" in excp.output:
> +                self.skipTest("EGL failed to initialize on this host")
>              else:
>                  self.log.info("unhandled launch failure: %s", excp.output)
>                  raise excp
> --
> 2.43.0
>
>