From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1LPKZ5-00042Z-2m for qemu-devel@nongnu.org; Tue, 20 Jan 2009 12:39:03 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1LPKZ4-00041d-IF for qemu-devel@nongnu.org; Tue, 20 Jan 2009 12:39:02 -0500 Received: from [199.232.76.173] (port=43351 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1LPKZ4-00041Y-Bs for qemu-devel@nongnu.org; Tue, 20 Jan 2009 12:39:02 -0500 Received: from smtp.eu.citrix.com ([62.200.22.115]:33808) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1LPKZ3-0005mz-T2 for qemu-devel@nongnu.org; Tue, 20 Jan 2009 12:39:02 -0500 Message-ID: <49760B56.3090507@eu.citrix.com> Date: Tue, 20 Jan 2009 17:35:18 +0000 From: Stefano Stabellini MIME-Version: 1.0 Subject: Re: [Qemu-devel] Re: Extremely slow graphic updates 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> <4976081C.2090407@eu.citrix.com> In-Reply-To: <4976081C.2090407@eu.citrix.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Paul Brook , Lennart Sorensen Stefano Stabellini wrote: > 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. > It seems that the select in vl.c:main_loop_wait never returns unless gui_timer is properly set. Something tells me that it shouldn't work this way :)