From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1LPKM1-00076P-9J for qemu-devel@nongnu.org; Tue, 20 Jan 2009 12:25:33 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1LPKLz-00074V-6M for qemu-devel@nongnu.org; Tue, 20 Jan 2009 12:25:31 -0500 Received: from [199.232.76.173] (port=38266 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1LPKLy-00074I-Vm for qemu-devel@nongnu.org; Tue, 20 Jan 2009 12:25:31 -0500 Received: from smtp.ctxuk.citrix.com ([62.200.22.115]:17028 helo=SMTP.EU.CITRIX.COM) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1LPKLy-0004Mg-Fn for qemu-devel@nongnu.org; Tue, 20 Jan 2009 12:25:30 -0500 Message-ID: <4976081C.2090407@eu.citrix.com> Date: Tue, 20 Jan 2009 17:21:32 +0000 From: Stefano Stabellini MIME-Version: 1.0 References: <20090119162633.GO29175@csclub.uwaterloo.ca> <20090119194221.GS29175@csclub.uwaterloo.ca> <20090120005351.GV29175@csclub.uwaterloo.ca> <200901200133.25029.paul@codesourcery.com> <4975B3F6.6050706@eu.citrix.com> <20090120144518.GW29175@csclub.uwaterloo.ca> <4975EC17.3090404@eu.citrix.com> <20090120165534.GY29175@csclub.uwaterloo.ca> In-Reply-To: <20090120165534.GY29175@csclub.uwaterloo.ca> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Subject: [Qemu-devel] Re: Extremely slow graphic updates Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Lennart Sorensen Cc: Paul Brook , qemu-devel@nongnu.org Lennart Sorensen wrote: > I was trying to come up with a simple test case to show the problem, > but found another one. If I simply run qemu-system-ppc -vnc :1 I get > nothing on VNC. Using -sdl I get the openbios prompt. If I use both > -vnc :1 and -sdl I get openbios showing on both. vnc by itself seems to > only start displaying something once something other than openbios is > running, like the bootloader or linux kernel. That doesn't seem right. I could reproduce this issue. The problem seems to be strictly related to the gui_timer: Currently we set the gui_timer only if someone implements dpy_refresh. Since sdl implements dpy_refresh while vnc does not, when only vnc is enabled the gui_timer is never allocated. The weird thing is that even if I change the gui_update function to be something like: static void gui_update(void *opaque) { uint64_t interval = GUI_REFRESH_INTERVAL; DisplayState *ds = opaque; DisplayChangeListener *dcl = ds->listeners; qemu_mod_timer(ds->gui_timer, interval + qemu_get_clock(rt_clock)); } Vnc still works correctly. So it doesn't matter the actual implementation of the function to be called, as long as it is called.