Two followup observations:

I built commit 4bba839 as described below and ran it and it froze after a few moments, as expected.

I did a git diff against the previous commit to see what changed. As only a few files had a few lines of code removed, I checked out v9.1.1, re-added the removed lines, rebuilt and reran the VM, and it works fine.

The 'bad' commit removed dpy_cursor_define_supported().  I don't understand what that function is intended to do but on my machine, removing it appears to cause the freeze.

Hank

On Tue, 29 Oct 2024 08:20:56 -0400 Hank Knox <hank.k...@gmail.com> wrote:

> Shortly after I said my VM was running fine with freshly installed
> drivers so that this bug could be closed, it started freezing up again.
> I followed your plan to git bisect between v9.0.0 and v9.1.0.
>
> For each iteration of the bisection, I did:
> - buile the executable
> (make clean; ../configure --prefix=/usr/ --target-list=x86_64-softmmu
> --disable-tools; ninja qemu-system-x86_64)
>
> - started the VM using virt-manager (to make libvirt use the compiled
>   qemu-system-x86_64, run 'sudo virsh edit [VM-NAME]' and set the
>   <emulator> variable to the path to the executable and save the new
>   configuration; note that the executable must already exist when you
>   edit the domain);  Video display is set to QXL
>
> - logged in and started firefox (just to give it something to do)
>
> - waited a few minutes then tried to start something else, usually a
>   File Explorer instance. If the UI froze, 'git bisect bad', otherwise
>   'git bisect good'
>
> After about 10 iterations, I got this:
>
> 4bba839808bb1c4f500a11462220a687b4d9ab25 is the first bad commit
> commit 4bba839808bb1c4f500a11462220a687b4d9ab25
> Author: Akihiko Odaki <akihiko.od...@daynix.com>
> Date:   Mon Jul 15 14:25:45 2024 +0900
>
>     ui/console: Remove dpy_cursor_define_supported()
>
>     Remove dpy_cursor_define_supported() as it brings no benefit today and
>     it has a few inherent problems.
>
>     All graphical displays except egl-headless support cursor composition
>     without DMA-BUF, and egl-headless is meant to be used in conjunction
>     with another graphical display, so dpy_cursor_define_supported()
>     always returns true and meaningless.
>
>     Even if we add a new display without cursor composition in the future,
>     dpy_cursor_define_supported() will be problematic as a cursor display
>     fix for it because some display devices like virtio-gpu cannot tell the
>     lack of cursor composition capability to the guest and are unable to
>     utilize the value the function returns. Therefore, all non-headless
>     graphical displays must actually implement cursor composition for
>     correct cursor display.
>
>     Another problem with dpy_cursor_define_supported() is that it returns
>     true even if only some of the display listeners support cursor
>     composition, which is wrong unless all display listeners that lack
>     cursor composition is headless.
>
>     Reviewed-by: Marc-André Lureau <marcandre.lur...@redhat.com>
>     Reviewed-by: Phil Dennis-Jordan <p...@philjordan.eu>
>     Signed-off-by: Akihiko Odaki <akihiko.od...@daynix.com>
>     Message-ID: <20240715-cursor-v3-4-afa5b9492...@daynix.com>
>     Signed-off-by: Philippe Mathieu-Daudé <phi...@linaro.org>
>
>  hw/display/qxl-render.c |  4 ----
>  hw/display/vmware_vga.c |  6 ++----
>  include/ui/console.h    |  1 -

--
Hank Knox, FRSC
Schulich School of Music of
McGill University (retired)
Montreal, QC

Reply via email to