[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCHv2 3/6] ui/vnc: optimize dirty bitmap tracking
From: |
Eric Blake |
Subject: |
Re: [Qemu-devel] [PATCHv2 3/6] ui/vnc: optimize dirty bitmap tracking |
Date: |
Thu, 21 Nov 2013 08:16:29 -0700 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.1.0 |
On 11/21/2013 01:51 AM, Peter Lieven wrote:
> vnc_update_client currently scans the dirty bitmap of each client
> bitwise which is a very costly operation if only few bits are dirty.
> vnc_refresh_server_surface does almost the same.
> this patch optimizes both by utilizing the heavily optimized
> function find_next_bit to find the offset of the next dirty
> bit in the dirty bitmaps.
>
> The following artifical test (just the bitmap operation part) running
s/artifical/artificial/
> vnc_update_client 65536 times on a 2560x2048 surface illustrates the
> performance difference:
>
> All bits clean - vnc_update_client_new: 0.07 secs
> vnc_update_client_old: 10.98 secs
>
> All bits dirty - vnc_update_client_new: 11.26 secs
> vnc_update_client_old: 20.19 secs
>
> Few bits dirty - vnc_update_client_new: 0.08 secs
> vnc_update_client_old: 10.98 secs
>
> The case for all bits dirty is still rather slow, this
> is due to the implementation of find_and_clear_dirty_height.
> This will be addresses in a separate patch.
s/addresses/addressed/
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature
- [Qemu-devel] [PATCHv2 0/6] ui/vnc: update optimizations, Peter Lieven, 2013/11/21
- [Qemu-devel] [PATCHv2 2/6] ui/vnc: derive cmp_bytes from VNC_DIRTY_PIXELS_PER_BIT, Peter Lieven, 2013/11/21
- [Qemu-devel] [PATCHv2 4/6] ui/vnc: optimize clearing in find_and_clear_dirty_height(), Peter Lieven, 2013/11/21
- [Qemu-devel] [PATCHv2 1/6] ui/vnc: introduce VNC_DIRTY_PIXELS_PER_BIT macro, Peter Lieven, 2013/11/21
- [Qemu-devel] [PATCHv2 3/6] ui/vnc: optimize dirty bitmap tracking, Peter Lieven, 2013/11/21
- Re: [Qemu-devel] [PATCHv2 3/6] ui/vnc: optimize dirty bitmap tracking,
Eric Blake <=
- [Qemu-devel] [PATCHv2 6/6] ui/vnc: disable adaptive update calculations if not needed, Peter Lieven, 2013/11/21
- [Qemu-devel] [PATCHv2 5/6] ui/vnc: optimize setting in vnc_dpy_update(), Peter Lieven, 2013/11/21