[Spice-devel] experimental spice-server branch
Yonit Halperin
yhalperi at redhat.com
Thu Oct 24 17:29:03 CEST 2013
Hi,
You can find some optimizations I made to spice-server under:
http://cgit.freedesktop.org/~yhalperi/spice/
branch bitmap-crop.mem-control
together with:
http://cgit.freedesktop.org/~yhalperi/spice-common/
branch bitmap-crop.mem-control
The first set of patches (till commit a5100670f, inclusive) is about
sending only the used part of bitmaps, instead of the whole bitmaps.
With Windows7 guest, I noticed, that when scrolling with chrome browser,
and also when moving a window over the desktop, we get from the driver
large bitmaps, while only a small part of them is actually being used
(even if they are cached, when taking into account their usage over
several drawable operations).
Since cropping bitmaps might have negative affect over caching, I
activated it only when the low_bandwidth flag is turned on and when the
cropped area is less the 10% of the whole bitmap (more details in the code).
The second set of patches tries to improve how the qxl ram memory is
held by the server and minimize the occurrences of OOM in the driver.
I don't have yet conclusive results on how these optimizations affect
latency. We don't have a tool for measuring latency objectively, and it
was hard to estimate it from user experience.
I post these patches so that others can review and try them. There is
also a room to play with threshold constants, improving the occupied
memory estimation, changing the release ring management in qemu and the
driver, etc.
The patches for controlling the qxl ram usage can also be used for
removing the NUM_DRAWABLES limitation (useful for multiple clients and
spiceterm).
Best,
Yonit.
More information about the Spice-devel
mailing list