From: Gerd Hoffmann <kraxel@redhat.com>
To: qemu-devel@nongnu.org, elmarco@redhat.com
Subject: Re: [Qemu-devel] [RFC 7/7] qxl: add allocator
Date: Tue, 21 Feb 2012 10:20:49 +0100 [thread overview]
Message-ID: <4F4361F1.5000207@redhat.com> (raw)
In-Reply-To: <20120221082613.GD6476@garlic>
Hi,
> Right now qxl_render_update checks if the displaysurface buffer is not
> shared, meaning it was allocated by qemu, and in this case it replaces
> it with the flipped buffer.
I think we should first reqire spice-server 0.8.latest, so
update_area_complete is available unconditionally. Then do any
displaysurface updates in that callback (or a bh kicked by that
callback). Handle both shared & non-shared cases. I think we also can
get rid of the flip buffer then and just use a non-shared displaysurface
in that case (and flip the upside-down qxl surface while copying to the
qemu displaysurface).
> But right after that surface->data gets reset, by vga_hw_screen_dump:
> vga_hw_screen_dump/console_select/qemu_resize_displaysurface/ds->allocator->resize_displaysurface/defaultallocator_resize_displaysurface/qemu_alloc_display
>
> Hence my line of thought that replacing the allocator with my own would
> prevent this. Since you have misgivings about using our own allocator
> that I don't know how to resolve, I'm instead doing a second
> reallocation in our dpy_resize callback qxl.c:display_resize, in affect
> it means that we have three allocations and three deallocations for every
> screendump. Do you still think it's less ugly then an allocator? note
> that I have sdl and vnc working with spice with my allocator scheme.
> (just didn't test all three together yet).
IMHO that calls for a patch like this to get rid of the pointless
console_select() call:
--- a/console.c
+++ b/console.c
@@ -181,12 +181,14 @@ void vga_hw_screen_dump(const char *filename)
/* There is currently no way of specifying which screen we want to
dump,
so always dump the first one. */
- console_select(0);
+ if (previous_active_console && previous_active_console->index != 0) {
+ console_select(0);
+ }
if (consoles[0] && consoles[0]->hw_screen_dump) {
consoles[0]->hw_screen_dump(consoles[0]->hw, filename);
}
- if (previous_active_console) {
+ if (previous_active_console && previous_active_console->index != 0) {
console_select(previous_active_console->index);
}
}
cheers,
Gerd
next prev parent reply other threads:[~2012-02-21 9:21 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-02-19 21:27 [Qemu-devel] [RFC 0/7] qxl: fix hangs caused by qxl_render_update Alon Levy
2012-02-19 21:28 ` [Qemu-devel] [RFC 1/7] sdl: remove NULL check, g_malloc0 can't fail Alon Levy
2012-02-19 21:28 ` [Qemu-devel] [RFC 2/7] qxl: drop qxl_spice_update_area_async definition Alon Levy
2012-02-19 21:28 ` [Qemu-devel] [RFC 3/7] qxl: introduce QXLCookie Alon Levy
2012-02-20 10:56 ` Gerd Hoffmann
2012-02-20 12:31 ` Alon Levy
2012-02-20 12:39 ` Gerd Hoffmann
2012-02-19 21:28 ` [Qemu-devel] [RFC 4/7] qxl: make qxl_render_update async Alon Levy
2012-02-20 11:10 ` Gerd Hoffmann
2012-02-20 12:32 ` Alon Levy
2012-02-20 12:45 ` Gerd Hoffmann
2012-02-19 21:28 ` [Qemu-devel] [RFC 5/7] qxl-render: call ppm_save on callback Alon Levy
2012-02-20 11:32 ` Gerd Hoffmann
2012-02-20 12:36 ` Alon Levy
2012-02-20 12:49 ` Gerd Hoffmann
2012-02-20 21:29 ` Eric Blake
2012-02-21 8:19 ` Alon Levy
2012-02-21 16:15 ` Eric Blake
2012-02-21 17:40 ` Alon Levy
2012-02-22 13:17 ` Luiz Capitulino
2012-02-22 13:22 ` Alon Levy
2012-02-22 13:49 ` Luiz Capitulino
2012-02-22 14:22 ` Gerd Hoffmann
2012-02-22 14:29 ` Alon Levy
2012-02-22 15:55 ` Luiz Capitulino
2012-02-22 16:35 ` Alon Levy
2012-02-22 19:27 ` Luiz Capitulino
2012-02-22 14:28 ` Alon Levy
2012-02-22 14:47 ` Gerd Hoffmann
2012-02-22 15:26 ` Alon Levy
2012-02-19 21:28 ` [Qemu-devel] [RFC 6/7] qxl: use spice_qxl_update_area_dirty_async Alon Levy
2012-02-19 21:28 ` [Qemu-devel] [RFC 7/7] qxl: add allocator Alon Levy
2012-02-20 11:41 ` Gerd Hoffmann
2012-02-20 12:38 ` Alon Levy
2012-02-20 13:18 ` Gerd Hoffmann
2012-02-20 17:36 ` Alon Levy
2012-02-21 7:57 ` Gerd Hoffmann
2012-02-21 8:26 ` Alon Levy
2012-02-21 9:20 ` Gerd Hoffmann [this message]
2012-02-21 9:59 ` Alon Levy
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4F4361F1.5000207@redhat.com \
--to=kraxel@redhat.com \
--cc=elmarco@redhat.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.