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
_______________________________________________
Spice-devel mailing list
Spice-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/spice-devel

Reply via email to