All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Daniel P. Berrange" <berrange@redhat.com>
To: Gerd Hoffmann <kraxel@redhat.com>
Cc: qemu-devel@nongnu.org, Luiz Capitulino <lcapitulino@redhat.com>
Subject: Re: [Qemu-devel] [PATCHv3] qxl-render/qxl: split out qxl_save_ppm
Date: Wed, 13 Jul 2011 11:54:17 +0100	[thread overview]
Message-ID: <20110713105417.GC22414@redhat.com> (raw)
In-Reply-To: <4E1D766C.1090308@redhat.com>

On Wed, Jul 13, 2011 at 12:41:48PM +0200, Gerd Hoffmann wrote:
> On 07/13/11 11:29, Alon Levy wrote:
> >On Wed, Jul 13, 2011 at 09:10:19AM +0200, Gerd Hoffmann wrote:
> >>On 07/12/11 15:55, Alon Levy wrote:
> >>>Later the save will happen asynchronously on surface_updated callback.
> >>
> >>Hmm.  I can see why you are doing that.  It makes the file being
> >>written *after* the monitor command finishes though, which I think
> >>we should avoid.
> >
> >I think the simplest thing would be to add a specific cond for this - ppm_save_filename_cond. ok?
> 
> Not sure.  Luiz, do we have async monitor commands meanwhile?
> 
> Background: screendump for qxl vga can take a while as the
> spice-server might have to render everything first ...

Another option would be for the screenshot command to allow a
pre-opened FD to be passed in.

So libvirt would create a pipe(2) pass the write end of the
pipe to the 'screenshot' command. The screenshot command
can return from the monitor the moment it has validated that
it can perform the screenshot. QEMU can then write data to the
pipe in the background. libvirt (or equiv app) can likewise
safely read data out of the pipe as it becomes available without
any race condition.

This kind of approach would actually fit better with what libvirt
wants from a screenshot command, because we don't really want to
have the screenshot saved to disk at all. Our API just provides
applications with a stream to data the screenshot data from.
Currently we create a temporary file, save the screenshot to it,
and then immediately unlink it and stream data back to the app
from the deleted file. If we could just use a anonymous pipe it
would be much nicer

Daniel
-- 
|: http://berrange.com      -o-    http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org              -o-             http://virt-manager.org :|
|: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org       -o-       http://live.gnome.org/gtk-vnc :|

  reply	other threads:[~2011-07-13 10:54 UTC|newest]

Thread overview: 47+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-07-12 13:55 [Qemu-devel] [PATCHv3] async + suspend reworked Alon Levy
2011-07-12 13:55 ` [Qemu-devel] [PATCHv3] spice: add worker wrapper functions Alon Levy
2011-07-12 13:55 ` [Qemu-devel] [PATCHv3] spice: add qemu_spice_display_init_common Alon Levy
2011-07-12 13:55 ` [Qemu-devel] [PATCHv3] qxl: remove qxl_destroy_primary() Alon Levy
2011-07-12 13:55 ` [Qemu-devel] [PATCHv3] spice/qxl: move worker wrappers Alon Levy
2011-07-12 13:55 ` [Qemu-devel] [PATCHv3] qxl: fix surface tracking & locking Alon Levy
2011-07-12 13:55 ` [Qemu-devel] [PATCHv3] qxl: add io_port_to_string Alon Levy
2011-07-12 13:55 ` [Qemu-devel] [PATCHv3] qxl: error handling fixes and cleanups Alon Levy
2011-07-12 13:55 ` [Qemu-devel] [PATCHv3] qxl: make qxl_guest_bug take variable arguments Alon Levy
2011-07-12 13:55 ` [Qemu-devel] [PATCHv3] qxl: bump pci rev Alon Levy
2011-07-12 13:55 ` [Qemu-devel] [PATCHv3] qxl: use QXL_REVISION_* Alon Levy
2011-07-12 13:55 ` [Qemu-devel] [PATCHv3] qxl: QXL_IO_UPDATE_AREA: pass ram->update_area directly to update_area Alon Levy
2011-07-13  6:56   ` Gerd Hoffmann
2011-07-13  9:29     ` Alon Levy
2011-07-12 13:55 ` [Qemu-devel] [PATCHv3] qxl: async io support using new spice api Alon Levy
2011-07-12 13:55 ` [Qemu-devel] [PATCHv3] qxl-render/qxl: split out qxl_save_ppm Alon Levy
2011-07-13  7:10   ` Gerd Hoffmann
2011-07-13  9:29     ` Alon Levy
2011-07-13 10:41       ` Gerd Hoffmann
2011-07-13 10:54         ` Daniel P. Berrange [this message]
2011-07-13 11:29         ` Alon Levy
2011-07-13 11:46           ` Gerd Hoffmann
2011-07-13 12:39             ` Luiz Capitulino
2011-07-13 12:33           ` Luiz Capitulino
2011-07-13 12:56             ` Alon Levy
2011-07-13 13:15               ` Luiz Capitulino
2011-07-13 12:32         ` Luiz Capitulino
2011-07-13 13:45           ` Gerd Hoffmann
2011-07-13 14:10             ` Alon Levy
2011-07-13 14:25               ` Gerd Hoffmann
2011-07-13 10:50     ` Daniel P. Berrange
2011-07-12 13:55 ` [Qemu-devel] [PATCHv3] qxl-render: split out qxl_render_update_dirty_rectangles Alon Levy
2011-07-12 13:55 ` [Qemu-devel] [PATCHv3] qxl-render: qxl_render_update: nop if \!ssd.running Alon Levy
2011-07-12 13:55 ` [Qemu-devel] [PATCHv3] qxl-render: use update_area_async and update_area_complete Alon Levy
2011-07-13  7:51   ` Gerd Hoffmann
2011-07-13  9:30     ` Alon Levy
2011-07-12 13:55 ` [Qemu-devel] [PATCHv3] qxl: qxl_send_events: ignore if stopped (instead of abort) Alon Levy
2011-07-13  7:54   ` Gerd Hoffmann
2011-07-13  9:17     ` Alon Levy
2011-07-12 13:55 ` [Qemu-devel] [PATCHv3] qxl: only disallow specific io's in vga mode Alon Levy
2011-07-12 13:55 ` [Qemu-devel] [PATCHv3] qxl: add QXL_IO_FLUSH_{SURFACES, RELEASE} for guest S3&S4 support Alon Levy
2011-07-13  6:43 ` [Qemu-devel] [PATCHv3] async + suspend reworked Gerd Hoffmann
2011-07-13  8:51   ` Alon Levy
2011-07-13 10:45     ` Gerd Hoffmann
2011-07-13 11:24       ` Alon Levy
2011-07-13  7:11 ` Gerd Hoffmann
2011-07-13  9:05   ` 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=20110713105417.GC22414@redhat.com \
    --to=berrange@redhat.com \
    --cc=kraxel@redhat.com \
    --cc=lcapitulino@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.