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

Dominique Rodrigues dominique.rodrigues at nanocloud.com
Wed Jan 18 09:25:26 PST 2012


Le 18/01/2012 17:43, Alon Levy a écrit :
> 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.
Yes, so here is another timing from ssh login on the VM :

    PerfTop:     686 irqs/sec  kernel: 0.4%  exact:  0.0% [1000Hz 
cpu-clock],  (all, 1 CPU)
--------------------------------------------------------------------------------------------------

              samples  pcnt function                DSO
              _______ _____ _______________________ 
__________________________________________

              5817.00 62.0% hashlittle              
/usr/lib64/xorg/modules/drivers/qxl_drv.so
              2821.00 30.0% __memcpy_ssse3          /lib64/libc-2.12.so
               384.00  4.1% download_box            
/usr/lib64/xorg/modules/drivers/qxl_drv.so
               207.00  2.2% fetch_scanline_x8r8g8b8 
/usr/lib64/libpixman-1.so.0.18.4
                74.00  0.8% __memset_sse2           /lib64/libc-2.12.so
                17.00  0.2% qxl_allocnf             
/usr/lib64/xorg/modules/drivers/qxl_drv.so
                16.00  0.2% finish_task_switch      [kernel.kallsyms]
                11.00  0.1% retint_careful          [kernel.kallsyms]
                 9.00  0.1% _spin_unlock_irqrestore [kernel.kallsyms]
                 8.00  0.1% hash_and_copy           
/usr/lib64/xorg/modules/drivers/qxl_drv.so


>> 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.
>
Ok. So I hope you'll find some optimizations in a close future.

Thank you anyway for all the nice job already done on SPICE.

>> /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
>>
>
>
-------------- 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/20120118/9bc7de78/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/20120118/9bc7de78/attachment.bin>


More information about the Spice-devel mailing list