From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:40901) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1S5Ap3-0007rb-TI for qemu-devel@nongnu.org; Wed, 07 Mar 2012 01:58:08 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1S5Ap2-0005xJ-6j for qemu-devel@nongnu.org; Wed, 07 Mar 2012 01:58:05 -0500 Received: from mx1.redhat.com ([209.132.183.28]:64288) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1S5Ap1-0005x1-Uv for qemu-devel@nongnu.org; Wed, 07 Mar 2012 01:58:04 -0500 Message-ID: <4F5706F5.7010607@redhat.com> Date: Wed, 07 Mar 2012 07:57:57 +0100 From: Gerd Hoffmann MIME-Version: 1.0 References: <4F54CEA2.10808@codemonkey.ws> <4F54F5F8.70105@redhat.com> <4F54F76B.70403@codemonkey.ws> <20120305143142.1a1a53e2@doriath.home> <20120305180958.GC20937@garlic.tlv.redhat.com> <4F550350.7030703@redhat.com> <4F55BE82.3030205@redhat.com> <20120306092427.35103975@doriath.home> <20120306131624.GC2240@garlic.redhat.com> <4F561661.7080805@codemonkey.ws> <20120306155649.GF2240@garlic.redhat.com> <4F56386A.8040700@codemonkey.ws> In-Reply-To: <4F56386A.8040700@codemonkey.ws> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH v2 1/2] console: add hw_screen_dump_async List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Anthony Liguori Cc: qemu-devel@nongnu.org, Avi Kivity , Luiz Capitulino Hi, >> qemu is hung at: >> main thread: >> #0 read > > Is qxl doing a blocking read? If so, that's a bug in qxl. It used to do that, with the latest spice pull it is gone[1]. And this fix is exactly what broke screendump. Spice does lazy rendering on the server side to avoid burning cpu for nothing, because in the common case there is nothing to render. Thats why there is no up-to-date displaysurface we can just write out when the screendump command comes in. What qxl screendump used to do is this: (1) ask spice server to render the screen (2) blocking read, waiting for spice spice server finish <- BUG (3) write out screendump What qxl screendump does now is: (1) ask spice server to render the screen (2) write out screendump from outdated displaysurface <- BUG (3) spice server finished, callback comes in, arm BH (4) bottom half handler updates displaysurface What we like to do instead is this: (1) ask spice server to render the screen (2) spice server finished, callback comes in, arm BH (3) bottom half handler updates displaysurface and writes the screendump (4) signal screendump monitor command is finished. See our problem now? cheers, Gerd [1] With the exception of guest with old qxl drivers which is pretty much unfixable due to way the old guest <-> qxl interface is designed.