experimental spice-server branch

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]     [Monitors]