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

Dominique Rodrigues dominique.rodrigues at nanocloud.com
Sun Jan 22 14:05:59 PST 2012


Le 22/01/2012 22:36, Alon Levy a écrit :
> 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.
>

Yes, it works now.

Response is also better to draw in Gimp, quite reactive (not as fast 
however as in the windows version of qxl or with cirrus or vmware xorg 
display driver in Linux).

Dominique

>>>
>>>>>>>>>> /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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: dominique_rodrigues.vcf
Type: text/x-vcard
Size: 296 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/spice-devel/attachments/20120122/dfa2f31c/attachment.vcf>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 3710 bytes
Desc: S/MIME Cryptographic Signature
URL: <http://lists.freedesktop.org/archives/spice-devel/attachments/20120122/dfa2f31c/attachment.bin>


More information about the Spice-devel mailing list