qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Alon Levy <alevy@redhat.com>
To: Gerd Hoffmann <kraxel@redhat.com>
Cc: qemu-devel@nongnu.org, elmarco@redhat.com
Subject: Re: [Qemu-devel] [RFC 7/7] qxl: add allocator
Date: Tue, 21 Feb 2012 10:26:13 +0200	[thread overview]
Message-ID: <20120221082613.GD6476@garlic> (raw)
In-Reply-To: <4F434E82.2030401@redhat.com>

On Tue, Feb 21, 2012 at 08:57:54AM +0100, Gerd Hoffmann wrote:
>   Hi,
> 
> > TBH I'm having problems without doing it with my own Allocator. In
> > particular calling ppm_save from spice_server thread seems to be a
> > problem.
> 
> Grabbed the qemu mutex?

Didn't we remove qemu mutex grabbing from the spice server thread a long
long time ago? I've switched to using a bh, it seems to work better but
still not perfectly. I've also found my notes on why I tried the
allocator approach in the first place (all the following is in
QXL_NATIVE mode):

 Boot with qxl only, no vnc or sdl (so no qxl_render_update users except
 screendump).

 Issue screendump.

 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.

 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).

> 
> >> BTW: qxl insisting on a shared displaysurface isn't very clean too, it
> >> better should be able to fallback to just copying/converting for the
> >> non-shared case.
> > 
> > I'll try to get that working, although it seems to require having some
> > timer/bh to do the ppm_save.
> 
> bh should do, that is one of the things they are supposed to handle.
> 
> cheers,
>   Gerd
> 
> 

  reply	other threads:[~2012-02-21  8:26 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 [this message]
2012-02-21  9:20               ` Gerd Hoffmann
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=20120221082613.GD6476@garlic \
    --to=alevy@redhat.com \
    --cc=elmarco@redhat.com \
    --cc=kraxel@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).