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