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

Dominique Rodrigues dominique.rodrigues at nanocloud.com
Sun Jan 22 10:43:53 PST 2012


Le 22/01/2012 19:39, Dominique Rodrigues a écrit :
> Le 22/01/2012 15:52, Dominique Rodrigues a écrit :
>> Le 22/01/2012 15:46, Alon Levy a écrit :
>>> On Sun, Jan 22, 2012 at 03:18:14PM +0100, Dominique Rodrigues wrote:
>>>> Le 20/01/2012 20:04, Yaniv Kaul a écrit :
>>>>> ----- Original Message -----
>>>>>>> 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.
>>>> That's true : when you draw in Gimp in a Windows Seven (64 bits)
>>>> guest, you have absolutely no delay, at any speed.
>>>>
>>>> Soren has recently improved a lot the qxl driver for Linux, but if
>>>> you accelerate the mouvement of your mouse, the drawing can't still
>>>> follow your mouse in Gimp.
>>>>
>>>> I don't know why different functions have been choosen into the qxl
>>>> drivers for Windows and Linux, but it could be interesting to
>>> because it was done by different people at different times.
>>>
>>
>> That's clear. I also thought that this was the main reason.
>>
>> However, since the qxl driver is the key to benefit from the best 
>> user experience in SPICE, my opinion is that it is important to 
>> optimize it as far as possible. Every effort for that goal is welcome.
>>
>> Dominique
>>
>>>> benefit from the best of these different versions.
>>>>
>>>>
>>>> Dominique Rodrigues
>
> By the way, since last improvements from Soren on the qxl driver, the 
> new consuming function is "qxl_update_area".
>
> Output of perf top (during rapid drawing in Gimp) :
>
>
>    PerfTop:     930 irqs/sec  kernel:39.8%  exact:  0.0% [1000Hz 
> cpu-clock],  (all, 1 CPU)
> ---------------------------------------------------------------------------------------------------------------------------------- 
>
>
>              samples  pcnt function                      DSO
>              _______ _____ _____________________________ 
> __________________________________________
>
>              1313.00 49.6% qxl_update_area               
> /usr/lib64/xorg/modules/drivers/qxl_drv.so
>               294.00 11.1% retint_careful                
> [kernel.kallsyms]
>               122.00  4.6% qxl_ring_push                 
> /usr/lib64/xorg/modules/drivers/qxl_drv.so
>                92.00  3.5% finish_task_switch            
> [kernel.kallsyms]
>                75.00  2.8% _spin_unlock_irqrestore       
> [kernel.kallsyms]
>                33.00  1.2% g_type_check_instance_cast    
> /lib64/libgobject-2.0.so.0.2200.5
>                33.00  1.2% pixman_blt_sse2               
> /usr/lib64/libpixman-1.so.0.18.4
>                31.00  1.2% _int_malloc                   
> /lib64/libc-2.12.so
>                30.00  1.1% __pthread_mutex_lock_internal 
> /lib64/libpthread-2.12.so
>                30.00  1.1% g_type_check_instance_is_a    
> /lib64/libgobject-2.0.so.0.2200.5
>                28.00  1.1% g_hash_table_lookup           
> /lib64/libglib-2.0.so.0.2200.5
>                23.00  0.9% g_slice_alloc                 
> /lib64/libglib-2.0.so.0.2200.5
>                21.00  0.8% __pthread_mutex_unlock        
> /lib64/libpthread-2.12.so
>                21.00  0.8% unix_poll                     
> [kernel.kallsyms]
>                19.00  0.7% native_flush_tlb              
> [kernel.kallsyms]
>                16.00  0.6% __do_page_fault               
> [kernel.kallsyms]
>                15.00  0.6% _int_free                     
> /lib64/libc-2.12.so
>                15.00  0.6% __memcpy_ssse3                
> /lib64/libc-2.12.so
>                14.00  0.5% __strstr_sse2                 
> /lib64/libc-2.12.so
>                14.00  0.5% clear_page_c                  
> [kernel.kallsyms]
>                11.00  0.4% do_select                     
> [kernel.kallsyms]
>                 9.00  0.3% qxl_surface_create            
> /usr/lib64/xorg/modules/drivers/qxl_drv.so
>                 8.00  0.3% g_atomic_int_exchange_and_add 
> /lib64/libglib-2.0.so.0.2200.5
>                 8.00  0.3% g_param_spec_pool_lookup      
> /lib64/libgobject-2.0.so.0.2200.5
>                 8.00  0.3% __GI___strcmp_ssse3           
> /lib64/libc-2.12.so
>                 7.00  0.3% __GI_vfprintf                 
> /lib64/libc-2.12.so
>                 7.00  0.3% g_slice_free1                 
> /lib64/libglib-2.0.so.0.2200.5
>                 7.00  0.3% sock_poll                     
> [kernel.kallsyms]
>                 7.00  0.3% __GI___libc_malloc            
> /lib64/libc-2.12.so
>
>
> Dominique

In fact, it seems to be the most important function in qxl, since when 
you only have a mouse above the screen of the VM, it gives that :

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

              samples  pcnt function        DSO
              _______ _____ _______________ 
__________________________________________

                10.00 100.0% qxl_update_area 
/usr/lib64/xorg/modules/drivers/qxl_drv.so


Dominique
-------------- 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/a451aa8a/attachment-0001.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/a451aa8a/attachment-0001.bin>


More information about the Spice-devel mailing list