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

Alon Levy alevy at redhat.com
Sun Jan 22 13:36:45 PST 2012


On Sun, Jan 22, 2012 at 11:03:47PM +0200, Alon Levy wrote:
> On Sun, Jan 22, 2012 at 06:33:59PM +0100, Dominique Rodrigues wrote:
> > 
> > Le 22/01/2012 18:28, Alon Levy a écrit :
> > >On Sun, Jan 22, 2012 at 05:15:42PM +0200, Alon Levy wrote:
> > >>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.
> > >>
> > >Since the hash is not in use right now at all, but commented out, you
> > >could get an even more remarkable performance improvement by disabling
> > >it. If you can check the branch at
> > >
> > >  git://people.freedesktop.org/~alon/xf86-video-qxl murmur3
> > >
> > >You can tell us how much it actually improves for you. I didn't disable
> > >the hashing, just replaced lookup3 with MurmurHash3 from
> > >http://code.google.com/p/smhasher/wiki/MurmurHash3.
> > >
> > 
> > I guess I missed something, because I don't manage to launch the
> > X-server now in my CentOS guest.
> > 
> > This what I have done :
> > 
> > # git clone git://people.freedesktop.org/~alon/xf86-video-qxl
> > xf86-video-qxl-alon-git
> > # cd xf86-video-qxl-alon-git
> > # git checkout murmur3
> > # git branch
> > * murmur3
> >   surface-fixes
> > # export
> > PKG_CONFIG_PATH=/usr/local//share/pkgconfig/:/usr/local/lib/pkgconfig
> > # ./autogen.sh --libdir=/usr/lib64 --prefix=/usr CFLAGS='-O3'
> > # make
> > # make install
> > 
> > Where is my mistake ?
> 
> Not yours, mine. Should have tested that it at least runs (missing
> symbol)

Should be ok now. Tested with Xspice, but it's the same code so should
be fine.

> 
> > 
> > 
> > >>>>>>>/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
> > >>_______________________________________________
> > >>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
> 
> _______________________________________________
> 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