[Spice-devel] Delay in Gimp when using qxl driver

Alon Levy alevy at redhat.com
Sun Jan 22 07:15:42 PST 2012


On Sun, Jan 22, 2012 at 03:53:40PM +0100, Dominique Rodrigues wrote:
> Le 22/01/2012 16:00, Alon Levy a écrit :
> >On Fri, Jan 20, 2012 at 02:04:47PM -0500, Yaniv Kaul wrote:
> >>----- Original Message -----
> >>>On Wed, Jan 18, 2012 at 11:59:45AM +0100, Dominique Rodrigues wrote:
> >>>>Le 18/01/2012 11:48, Alon Levy a écrit :
> >>>>>On Wed, Jan 18, 2012 at 11:39:13AM +0100, Dominique Rodrigues
> >>>>>wrote:
> >>>>>>Le 18/01/2012 11:32, Alon Levy a écrit :
> >>>>>>>On Wed, Jan 18, 2012 at 11:27:14AM +0100, Dominique Rodrigues
> >>>>>>>wrote:
> >>>>>>>>Le 18/01/2012 11:18, Alon Levy a écrit :
> >>>>>>>>>On Wed, Jan 18, 2012 at 09:54:49AM +0100, Dominique Rodrigues
> >>>>>>>>>wrote:
> >>>>>>>>>>Le 18/01/2012 09:44, Alon Levy a écrit :
> >>>>>>>>>>>On Wed, Jan 18, 2012 at 08:06:40AM +0100, Dominique
> >>>>>>>>>>>Rodrigues wrote:
> >>>>>>>>>>>>Hi,
> >>>>>>>>>>>>
> >>>>>>>>>>>>Since I use qxl driver in virtual desktop powered by
> >>>>>>>>>>>>qemu-kvm, I
> >>>>>>>>>>>>found a strange problem with Gimp.
> >>>>>>>>>>>>
> >>>>>>>>>>>>After launching Gimp, open a new windows, and then try to
> >>>>>>>>>>>>draw
> >>>>>>>>>>>>something. It appears that the drawing is very slow and
> >>>>>>>>>>>>does not
> >>>>>>>>>>>>follow the mouse at all.
> >>>>>>>>>>>>
> >>>>>>>>>>>>It is the same if I use spicy, spicec or vnc to connect to
> >>>>>>>>>>>>my
> >>>>>>>>>>>>virtual desktop.
> >>>>>>>>>>>>
> >>>>>>>>>>>>This problem does not appear with cirrus or vmware graphic
> >>>>>>>>>>>>drivers.
> >>>>>>>>>>>>
> >>>>>>>>>>>>I found that on any Linux distribution (CentOS, RHEL,
> >>>>>>>>>>>>Scientific
> >>>>>>>>>>>>Linux, Debian, Ubuntu).
> >>>>>>>>>>>>
> >>>>>>>>>>>>I currently use :
> >>>>>>>>>>>>- qemu-kvm 1.0 compiled with spice support
> >>>>>>>>>>>>- spice-protocol 0.10.1
> >>>>>>>>>>>>- spice 0.10
> >>>>>>>>>>>>- spice-gtk 0.7
> >>>>>>>>>>>>- xorg-qxl driver 0.16
> >>>>>>>>>>>>
> >>>>>>>>>>>>Is there any explanation for that ?
> >>>>>>>>>>>I would assume it is qxl driver cpu bound on something,
> >>>>>>>>>>>probably busy
> >>>>>>>>>>>waiting on the command ring. Can you run perf top on the
> >>>>>>>>>>>guest?
> >>>>>>>>>>>
> >>>>>>>>>>Indeed, during the drawing in Gimp, Xorg takes between 55%
> >>>>>>>>>>and 66% of CPU.
> >>>>>>>>>>
> >>>>>>>>>>After, Xorg goes down to 0.3%.
> >>>>>>>>>>
> >>>>>>>>>>(Test done on CentOS 6.2 guest, with 1280 Mb vRAM)
> >>>>>>>>>ok, can you drill down - you should be able to install the
> >>>>>>>>>debug symbols
> >>>>>>>>>for the qxl driver (xorg-x11-drv-qxl package) and see the
> >>>>>>>>>specific
> >>>>>>>>>functions that are taking the most time.
> >>>>>>>>>
> >>>>>>>>I installed qxl driver from freedesktop.org :
> >>>>>>>>
> >>>>>>>># wget -c
> >>>>>>>>http://xorg.freedesktop.org/releases/individual/driver/xf86-video-qxl-0.0.16.tar.bz2
> >>>>>>>># tar xvfj xf86-video-qxl-0.0.16.tar.bz2
> >>>>>>>># cd xf86-video-qxl-0.0.16
> >>>>>>>># ./configure --libdir=/usr/lib64 --prefix=/usr CFLAGS='-O3'
> >>>>>>>># make
> >>>>>>>># make install
> >>>>>>>>
> >>>>>>>>Do you mean that I should use CFLAGS with "-g" ?
> >>>>>>>I think that's it, yes.
> >>>>>>>
> >>>>>>Ok. So how do you profile debug messages afterwhile ?
> >>>>>>
> >>>>>>If I "tail -f /var/log/Xorg.0.log", the only message I got is :
> >>>>>>
> >>>>>>  Bad bpp: 1 (1)
> >>>>>>
> >>>>>>Other messages look standard.
> >>>>>>
> >>>>>Right, that's not interesting. What I meant was:
> >>>>>
> >>>>># yum install perf
> >>>>># perf top
> >>>>>copy paste the top entries.
> >>>>>
> >>>>Ok, that's it (from a screenshot of the VM):
> >>>Try ssh'ing to the vm, you can then use copy-paste.
> >>>
> >>>>samples    pcnt    function        DSO
> >>>>
> >>>>3796.00        60.4%    hashlittle
> >>>This sucks, unfortunately I don't have any quick fix for it. It's the
> >>>hash computation done on each image. Needless to say it needs to be
> >>>optimized - either made more efficient or reduce the number of calls.
> >>>
> >>>Soren, FYI.
> >>You could move to murmur2, like Windows' QXL driver (https://bugs.freedesktop.org/show_bug.cgi?id=37465) or murmur3 or other faster ones (https://bugs.freedesktop.org/show_bug.cgi?id=35775).
> >>At least it's not hashed twice now(https://bugs.freedesktop.org/show_bug.cgi?id=37977 - worth updating bug status?!), but I'm not sure it should be hashed at all, if it's not cached.
> >>Y.
> >Looks like this could be x6 performance gain when compared to hashlittle
> >(lookup3 at http://code.google.com/p/smhasher/). So it would still be
> >better not to run it at all but it might stop being the bottleneck. I'll
> >try to do a patch.
> >
> 
> Sounds promising.

Actually only 2x since we use a 32bit hash anyway (x86/x64). Still worth
a patch.

> 
> >>
> >>>>/usr/lib64/xorg/modules/drivers/qxl_drv.so
> >>>>2014.00        32.1%    __memcpy_ssse3      /lib64/libc-2.12.so
> >>>>341.00            5.4%    download_box
> >>>>/usr/lib64/xorg/modules/drivers/qxl_drv.so
> >>>>61.00               1.0%    __memset_sse2
> >>>>        /lib64/libc-2.12.so
> >>>>11.00               0.2%    qxl_ring_push
> >>>>/usr/lib64/xorg/modules/drivers/qxl_drv.so
> >>>>10.00               0.2%    finish_task_switch    [kernel.kallsyms]
> >>>>8.00                 0.1%    qxl_allocnf
> >>>>/usr/lib64/xorg/modules/drivers/qxl_drv.so
> >>>>8.00                 0.1%    retint_careful
> >>>>            [kernel.kallsyms]
> >>>>6.00                 0.1%    hash_and_copy
> >>>>/usr/lib64/xorg/modules/drivers/qxl_drv.so
> >>>>>>>>>>>>Regards,
> >>>>>>>>>>>>
> >>>>>>>>>>>>--
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>>        Dominique Rodrigues
> >>>>>>>>>>>>
> >>>>>>>>>>>>nanoClouD<http://www.nanocloud.com>
> >>>>>>>>>>>>8, rue Lemercier
> >>>>>>>>>>>>75017 Paris
> >>>>>>>>>>>>France
> >>>>>>>>>>>>standard : +33 1 77 69 64 38
> >>>>>>>>>>>>529 002 743 R.C.S. Paris
> >>>>>>>>>>>>begin:vcard
> >>>>>>>>>>>>fn:Dominique Rodrigues
> >>>>>>>>>>>>n:Rodrigues;Dominique
> >>>>>>>>>>>>org:nanoClouD
> >>>>>>>>>>>>adr:;;8, rue Lemercier;Paris;;75017;France
> >>>>>>>>>>>>email;internet:dominique.rodrigues at nanocloud.com
> >>>>>>>>>>>>title:Directeur Technique
> >>>>>>>>>>>>tel;work:+33 (0) 1 77 69 64 38
> >>>>>>>>>>>>tel;cell:+33 (0) 6 28 52 37 70
> >>>>>>>>>>>>url:www.nanocloud.com
> >>>>>>>>>>>>version:2.1
> >>>>>>>>>>>>end:vcard
> >>>>>>>>>>>>
> >>>>>>>>>>>>_______________________________________________
> >>>>>>>>>>>>Spice-devel mailing list
> >>>>>>>>>>>>Spice-devel at lists.freedesktop.org
> >>>>>>>>>>>>http://lists.freedesktop.org/mailman/listinfo/spice-devel
> >>>>>>>>>>begin:vcard
> >>>>>>>>>>fn:Dominique Rodrigues
> >>>>>>>>>>n:Rodrigues;Dominique
> >>>>>>>>>>org:nanoClouD
> >>>>>>>>>>adr:;;8, rue Lemercier;Paris;;75017;France
> >>>>>>>>>>email;internet:dominique.rodrigues at nanocloud.com
> >>>>>>>>>>title:Directeur Technique
> >>>>>>>>>>tel;work:+33 (0) 1 77 69 64 38
> >>>>>>>>>>tel;cell:+33 (0) 6 28 52 37 70
> >>>>>>>>>>url:www.nanocloud.com
> >>>>>>>>>>version:2.1
> >>>>>>>>>>end:vcard
> >>>>>>>>>>
> >>>>>>>>>>_______________________________________________
> >>>>>>>>>>Spice-devel mailing list
> >>>>>>>>>>Spice-devel at lists.freedesktop.org
> >>>>>>>>>>http://lists.freedesktop.org/mailman/listinfo/spice-devel
> >>>>>>>>begin:vcard
> >>>>>>>>fn:Dominique Rodrigues
> >>>>>>>>n:Rodrigues;Dominique
> >>>>>>>>org:nanoClouD
> >>>>>>>>adr:;;8, rue Lemercier;Paris;;75017;France
> >>>>>>>>email;internet:dominique.rodrigues at nanocloud.com
> >>>>>>>>title:Directeur Technique
> >>>>>>>>tel;work:+33 (0) 1 77 69 64 38
> >>>>>>>>tel;cell:+33 (0) 6 28 52 37 70
> >>>>>>>>url:www.nanocloud.com
> >>>>>>>>version:2.1
> >>>>>>>>end:vcard
> >>>>>>>>
> >>>>>>begin:vcard
> >>>>>>fn:Dominique Rodrigues
> >>>>>>n:Rodrigues;Dominique
> >>>>>>org:nanoClouD
> >>>>>>adr:;;8, rue Lemercier;Paris;;75017;France
> >>>>>>email;internet:dominique.rodrigues at nanocloud.com
> >>>>>>title:Directeur Technique
> >>>>>>tel;work:+33 (0) 1 77 69 64 38
> >>>>>>tel;cell:+33 (0) 6 28 52 37 70
> >>>>>>url:www.nanocloud.com
> >>>>>>version:2.1
> >>>>>>end:vcard
> >>>>>>
> >>>>>
> >>>>>
> >>>>>>_______________________________________________
> >>>>>>Spice-devel mailing list
> >>>>>>Spice-devel at lists.freedesktop.org
> >>>>>>http://lists.freedesktop.org/mailman/listinfo/spice-devel
> >>>>begin:vcard
> >>>>fn:Dominique Rodrigues
> >>>>n:Rodrigues;Dominique
> >>>>org:nanoClouD
> >>>>adr:;;8, rue Lemercier;Paris;;75017;France
> >>>>email;internet:dominique.rodrigues at nanocloud.com
> >>>>title:Directeur Technique
> >>>>tel;work:+33 (0) 1 77 69 64 38
> >>>>tel;cell:+33 (0) 6 28 52 37 70
> >>>>url:www.nanocloud.com
> >>>>version:2.1
> >>>>end:vcard
> >>>>
> >>>
> >>>
> >>>_______________________________________________
> >>>Spice-devel mailing list
> >>>Spice-devel at lists.freedesktop.org
> >>>http://lists.freedesktop.org/mailman/listinfo/spice-devel
> >>>

> begin:vcard
> fn:Dominique Rodrigues
> n:Rodrigues;Dominique
> org:nanoClouD
> adr:;;8, rue Lemercier;Paris;;75017;France
> email;internet:dominique.rodrigues at nanocloud.com
> title:Directeur Technique
> tel;work:+33 (0) 1 77 69 64 38
> tel;cell:+33 (0) 6 28 52 37 70
> url:www.nanocloud.com
> version:2.1
> end:vcard
> 




> _______________________________________________
> Spice-devel mailing list
> Spice-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/spice-devel



More information about the Spice-devel mailing list