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

Alon Levy alevy at redhat.com
Sun Jan 22 13:43:06 PST 2012


On Sun, Jan 22, 2012 at 07:39:39PM +0100, Dominique Rodrigues wrote:
> 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".

Soren, would that be fixed by Xrender?

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

> 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