[Spice-devel] [bug] tripping an assert (regularly!) in release_drawable in red_worker.c
Nahum Shalman
nshalman at elys.com
Tue May 1 12:42:04 PDT 2012
On 05/01/2012 01:17 PM, Yonit Halperin wrote:
> I'm doing some changes in this part of the code, but so far I haven't
> tripped into this assert (before applying my changes, and without
> pulling changes from the last week or two). Can you bisect this?
> What guest are you running?
I probably can't bisect this, but I can provide a bunch more detail for you.
Guest OS: Fedora 16
Things we've noticed:
Using the stock xorg-x11-drv-qxl from the repositories, it is not
possible to disable the caching or surfaces features of the xorg
driver. Performance is not optimal.
If you recompile the xorg qxl driver from source from about 2 weeks ago,
you can cause the spice server to start tripping over asserts if you put
a file like this into xorg.conf.d and start watching videos in the VM:
----
Section "Device"
Identifier "Videocard0"
Driver "qxl"
Option "DPI" "96 x 96"
Option "ENABLE_IMAGE_CACHE" "False"
Option "ENABLE_FALLBACK_CACHE" "False"
Option "ENABLE_SURFACES" "False"
EndSection
----
Without that file, if you run Firefox, you get tons of "Out of surfaces"
messages in the Xorg log file, and firefox's performance goes down to
unusable. Google chrome running at the same time doesn't cause the spew
of messages, and performs fine.
With that same driver, if you remove the 2 lines with CACHE in them, but
leave in the line to disable surfaces, Firefox stops causing
the spew of "out of surfaces" messages (because there are none) and
performs fine.
If you recompile the xorg qxl driver from source as of today, and don't
disable any of the features, running Firefox no longer causes a spew of
"out of surfaces" messages, but the performance is still somewhat shoddy.
If you disable the surfaces only (leave caches enabled), firefox
performance goes back to performing well.
So, to sum up:
If you want to cause assertion failures in the spice server, manually
compile the xorg qxl driver from 2 weeks ago and install it in a fedora
16 VM, and disable the cache features and the surface feature, and then
try to stream video. It seems like a badly behaving qxl driver can
crash the spice server which is a flaw. It should detect a badly
behaving client more robustly and try to recover.
There are still performance problems with the surfaces feature, and GTK
applications seem to hit them more so than non-gtk applications.
On the bright side it seems like with mainline spice server and mainline
xorg qxl driver, if you disable the surfaces, performance on Fedora 16
goes back to being the awesomeness that Spice is supposed to deliver. :)
Thanks!
-Nahum
More information about the Spice-devel
mailing list