Bug 710385

Summary: Performance regression from non-surface to surface support driver
Product: Red Hat Enterprise Linux 6 Reporter: Marian Krcmarik <mkrcmari>
Component: xorg-x11-drv-qxlAssignee: Søren Sandmann Pedersen <sandmann>
Status: CLOSED NOTABUG QA Contact: Desktop QE <desktop-qa-list>
Severity: urgent Docs Contact:
Priority: urgent    
Version: 6.1CC: acathrow, audgiri, cvantuin, djasa, jwest, kem, lyarwood, pvine, sandmann, skrishna, syeghiay, yhalperi
Target Milestone: rcKeywords: Regression, Reopened, Triaged
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard: [cat:performance]
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2013-10-08 04:47:00 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 612566    
Attachments:
Description Flags
Output of x11perfcomp none

Description Marian Krcmarik 2011-06-03 09:39:02 UTC
Description of problem:
Since subjectively I have a feeling that surface support did not bring expected performance improvement, moreover It seems to be worse than It was without surface support (subjective observation, not based on real data) I run bunch of artificial performance tests provided by x11perf tool. Even though those tests are artificial and do not measure final user experience from spice client point of view It's important from host point of view when many VMs running on the host regards to source consumption.
I run x11perf test in two cases:

1. Run RHEL6.1 guest on RHEL6.1 host (localhost) with xorg-x11-drv-qxl-0.0.12-2.1.el6_0.1 driver.
2. Run very same guest as in case 1, only one difference is the driver: 	xorg-x11-drv-qxl-0.0.12-9

In both cases nothing else was running on host, the same instance of qemu-kvm was used with only difference in qxl driver version.

Results output by x11perfcomp:
x11perf contains 369 tests, performance when using 0.0.12-9 was in comparison with 0.0.12-2.1.el6_0.1 in:
97 tests <1% of performance of 0.0.12-2.1.el6_0.1
90 tests 1-10%
54 tests 10-50%
60 tests 50-100%
68 >100%

Please consider those results especially those tests when performance of the latest driver is under 1% of the older one without surface support.
I rerun those test 3 times with similar results. Error of measurement when tests run on the same setup including the same qxl driver version was under 15%.

Version-Release number of selected component (if applicable):
spice-server-0.8.0-1
qemu-kvm-0.12.1.2-2.160
Guest, client, host: RHEL6.1

How reproducible:
Always

Comment 2 Marian Krcmarik 2011-06-03 09:44:46 UTC
Created attachment 502766 [details]
Output of x11perfcomp

Comment 7 Andrew Cathrow 2012-02-28 14:21:51 UTC
*** Bug 738416 has been marked as a duplicate of this bug. ***

Comment 9 David Jaša 2012-02-28 15:43:32 UTC
Another consideration: there was a patch to upstream QXL recently that enables image caching by default, making Spice performance way better with Linux guest. That patch should be included in the update as well.

Comment 10 Søren Sandmann Pedersen 2012-03-06 16:25:51 UTC
<kem> ok, PM said to go ahead with that plan -- add a comment to 710385 that this is fixed by adding the option to turn off surfaces, which was included in 799524, and then close 710385 as a dup of 799524

*** This bug has been marked as a duplicate of bug 799524 ***

Comment 11 Marian Krcmarik 2012-03-06 16:36:12 UTC
One would expects that the right way is to fix the issue and even get performance benefits from off-screen surfaces and not to disable it...
Well one may be wrong, This could be done months ago anyway.

Comment 12 David Jaša 2012-03-06 16:46:04 UTC
The pre-surface driver didn't support image cache either and performance of surface-enabled cache-less driver regressed compared to it. Therefore the root cause is somewhere else and closing this bug is the best way to make the it backfire on us later.

Reopening and un-marking as dupe based on reasons stated above.