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

Alon Levy alevy at redhat.com
Sun Jan 22 07:00:53 PST 2012


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.

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


More information about the Spice-devel mailing list