From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:48499) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RzEIn-0003yf-Jf for qemu-devel@nongnu.org; Sun, 19 Feb 2012 16:28:14 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RzEIm-0004SN-Gq for qemu-devel@nongnu.org; Sun, 19 Feb 2012 16:28:13 -0500 Received: from mx1.redhat.com ([209.132.183.28]:26924) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RzEIm-0004SF-6a for qemu-devel@nongnu.org; Sun, 19 Feb 2012 16:28:12 -0500 Received: from int-mx12.intmail.prod.int.phx2.redhat.com (int-mx12.intmail.prod.int.phx2.redhat.com [10.5.11.25]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id q1JLSArH000458 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Sun, 19 Feb 2012 16:28:10 -0500 From: Alon Levy Date: Sun, 19 Feb 2012 23:27:59 +0200 Message-Id: <1329686886-6853-1-git-send-email-alevy@redhat.com> Subject: [Qemu-devel] [RFC 0/7] qxl: fix hangs caused by qxl_render_update List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org, kraxel@redhat.com, elmarco@redhat.com This is the second attempt to fix this issue, as a lesson from the last time it doesn't try to use an async monitor command. So with this patchset, in qxl mode, a screendump monitor command will complete before the file is written to disk. This is much better then a hang. To fix it does require asynchronous monitor command completion. This is an RFC because of the last patch, that implements a DisplayAllocator trio (create,free,resize) for qxl. Without it there are two incorrect screendumps after each resolution change. With it there is no error, but it still seems it can be improved, in particular it does a redraw for every qxl_render_update because of wrong usage of the QEMU_ALLOCATED_FLAG that is required to get vga_draw_graphic to do the 24 to 32 bit conversion, to get correct display for VBE modes using 24 bit depth. Please review, Alon Levy (7): sdl: remove NULL check, g_malloc0 can't fail qxl: drop qxl_spice_update_area_async definition qxl: introduce QXLCookie qxl: make qxl_render_update async qxl-render: call ppm_save on callback qxl: use spice_qxl_update_area_dirty_async qxl: add allocator hw/qxl-render.c | 98 +++++++++++++----------- hw/qxl.c | 207 +++++++++++++++++++++++++++++++++++++++++++++------- hw/qxl.h | 12 +-- ui/sdl.c | 4 - ui/spice-display.c | 27 ++++++- ui/spice-display.h | 15 ++++ 6 files changed, 276 insertions(+), 87 deletions(-) -- 1.7.9