qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] Re: Extremely slow graphic updates


From: Stefano Stabellini
Subject: Re: [Qemu-devel] Re: Extremely slow graphic updates
Date: Wed, 21 Jan 2009 20:06:38 +0000
User-agent: Thunderbird 2.0.0.14 (X11/20080505)

Lennart Sorensen wrote:

> I just tried running with '-serial /dev/null -parallel /dev/null' and
> the slow down problem disappeared.  I am suspicious of this part of the
> 6336 commit:
> 
> @@ -1360,12 +1352,137 @@ void qemu_console_copy(QEMUConsole *console, int 
> src_x, int src_y,
>                  int dst_x, int dst_y, int w, int h)
>  {
>      if (active_console == console) {
> -        if (console->ds->dpy_copy)
> -            console->ds->dpy_copy(console->ds,
> -                            src_x, src_y, dst_x, dst_y, w, h);
> -        else {
> -            /* TODO */
> -            console->ds->dpy_update(console->ds, dst_x, dst_y, w, h);
> -        }
> +            dpy_copy(console->ds, src_x, src_y, dst_x, dst_y, w, h);
>      }
>  }
> 
> To me this looks like what used to do a copy if the console was active,
> and an update if it was not, has turned into a copy at all times.  This
> sounds like potentially doing expensive work on inactive consoles.  This
> is what made me think of trying to disable the parallel and serial
> consoles.
> 
> I made this little patch for console.c:
> 
> --- qemu-0.9.1.14778c2064166a8d1d07b22f0af9eee4fa490e60/console.c       
> 2009-01-21 09:26:06.000000000 -0500
> +++ qemu-0.9.1.14778c2064166a8d1d07b22f0af9eee4fa490e60.new/console.c   
> 2009-01-21 10:12:29.000000000 -0500
> @@ -1433,7 +1433,11 @@
>                         int dst_x, int dst_y, int w, int h)
>  {
>      if (is_graphic_console()) {
> -        dpy_copy(ds, src_x, src_y, dst_x, dst_y, w, h);
> +        if(active_console->ds == ds) {
> +            dpy_copy(ds, src_x, src_y, dst_x, dst_y, w, h);
> +        } else {
> +            dpy_update(ds, dst_x, dst_y, w, h);
> +        }
>      }
>  }
> 
> And then it is back to proper speed for me across ssh.  Does it make sense?
> 


I am afraid your patch shouldn't make a difference because sdl doesn't
have a dpy_copy function so with sdl dpy_update is always called.
Besides none calls qemu_console_copy but graphic cards so passing
'-serial /dev/null -parallel /dev/null' shouldn't change anything in
this regard.

In any case I tried passing '-serial /dev/null -parallel /dev/null' as
arguments but (locally) I do not see any benefits (I tested with the
debian ppc installation cd).
Could you please tell me if you see the slowdown on a local X server also?
The sdl blitting functions are optimized to be run locally, it is
possible that they do not have good performances on a remote X server.
Fortunately we provide a much better interface to connect to qemu
remotely (vnc), that now should be even faster than before.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]