From: Anthony Liguori <anthony@codemonkey.ws>
To: "Daniel P. Berrange" <berrange@redhat.com>, qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH] opengl rendering in the sdl window
Date: Mon, 08 Sep 2008 11:05:54 -0500 [thread overview]
Message-ID: <48C54D62.5060509@codemonkey.ws> (raw)
In-Reply-To: <20080908154700.GT2315@redhat.com>
Daniel P. Berrange wrote:
> On Mon, Sep 08, 2008 at 04:08:01PM +0100, Jamie Lokier wrote:
>
>> Gerd Hoffmann wrote:
>>
>>> Beside that I still think it would be a good idea to separate qemu and
>>> the gui into two separate processes, so you can close the GUI window and
>>> keep the VM running. It also solves the dependency issue for distros as
>>> the gtk frontend with all the dependencies can just go into a separate
>>> sub-package.
>>>
>> Extending VNC with a "shared memory" extension, similar to Xlib's
>> MIT-SHM extension, and implementing it in QEMU and Gtk-VNC would be a
>> nice way to do this.
>>
>
> Funny you should mention that. Anthony had code todo exactly that against
> for both QEMU and GTK-VNC a while back. We had it in the GTK-VNC for a
> short while but removed it due to some race conditions in its impl, and
> it interracted badly with our OpenGL impl. We could easily revisit this
> idea if it were thought to be important / useful.
>
The difficulty is deleting the shared memory segment reliably.
Normally, what you want to do is:
shmget()
shmat()
shmctl(IPC_RMID)
...
shmdt()
And the first sequence has to be as reliable and quick as possible
because if you exit before the shmctl(), you'll leak the shared memory.
Unfortunately, you have to shmget() in the client and shmat() in the
server and client, so that means:
shmget()
shmat()
...
notify server of key
wait for server to confirm shmat()
...
shmctl(IPC_RMID)
..
shmdt()
Which leaves a huge window open where bad things can happen. The client
can exit, the client can crash. This is particularly troublesome in a
library because it's really not nice to try and register an atexit()
handler or something like that from a library.
It would be nice to come up with a solution to this.
Regards,
Anthony Liguori
> Daniel
>
next prev parent reply other threads:[~2008-09-08 16:06 UTC|newest]
Thread overview: 75+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-08-29 15:22 [Qemu-devel] [PATCH] opengl rendering in the sdl window Stefano Stabellini
2008-09-02 16:53 ` Ian Jackson
2008-09-04 3:00 ` Anthony Liguori
2008-09-04 7:41 ` Gerd Hoffmann
2008-09-04 9:42 ` Daniel P. Berrange
2008-09-04 10:06 ` Andreas Färber
2008-09-04 10:20 ` Daniel P. Berrange
2008-09-05 16:42 ` Andreas Färber
2008-09-07 7:51 ` Avi Kivity
2008-09-07 3:07 ` Anthony Liguori
2008-09-07 16:31 ` Daniel P. Berrange
2008-09-08 0:12 ` Anthony Liguori
2008-09-04 10:06 ` Stefano Stabellini
2008-09-05 12:02 ` Jamie Lokier
2008-09-05 12:11 ` Samuel Thibault
2008-09-06 23:27 ` Jamie Lokier
2008-09-07 14:22 ` Samuel Thibault
2008-09-07 14:36 ` Paul Brook
2008-09-07 14:42 ` Samuel Thibault
2008-09-07 15:03 ` Paul Brook
2008-09-07 15:12 ` Samuel Thibault
2008-09-07 15:35 ` Paul Brook
2008-09-07 15:41 ` Samuel Thibault
2008-09-07 15:57 ` Paul Brook
2008-09-08 0:08 ` Anthony Liguori
2008-09-08 0:21 ` Samuel Thibault
2008-09-08 1:18 ` Jamie Lokier
2008-09-08 10:38 ` Stefano Stabellini
2008-09-08 13:21 ` Jamie Lokier
2008-09-05 16:44 ` Stefano Stabellini
2008-09-05 16:55 ` Daniel P. Berrange
2008-09-05 17:13 ` Stefano Stabellini
2008-09-07 3:21 ` Anthony Liguori
2008-09-08 10:48 ` Stefano Stabellini
2008-09-08 13:16 ` Jamie Lokier
2008-09-08 13:51 ` Stefano Stabellini
2008-09-08 13:41 ` Jamie Lokier
2008-09-08 13:48 ` Daniel P. Berrange
2008-09-08 14:56 ` Gerd Hoffmann
2008-09-08 15:08 ` Jamie Lokier
2008-09-08 15:35 ` Gerd Hoffmann
2008-09-08 15:39 ` Jamie Lokier
2008-09-08 16:23 ` Gerd Hoffmann
2008-09-08 16:47 ` Anthony Liguori
2008-09-08 19:15 ` Gerd Hoffmann
2008-09-08 19:43 ` Jamie Lokier
2008-09-08 15:47 ` Daniel P. Berrange
2008-09-08 16:05 ` Anthony Liguori [this message]
2008-09-08 17:08 ` Mike Kronenberg
2008-09-08 19:21 ` Gerd Hoffmann
2008-09-08 21:06 ` Mike Kronenberg
2008-09-08 19:32 ` Jamie Lokier
2008-09-08 19:48 ` Jamie Lokier
2008-09-08 19:57 ` Anthony Liguori
2008-09-08 20:11 ` Jamie Lokier
2008-09-08 23:18 ` Daniel P. Berrange
2008-09-09 0:10 ` Jamie Lokier
2008-09-09 2:45 ` Anthony Liguori
2008-09-09 4:17 ` Jamie Lokier
2008-09-08 14:22 ` Anthony Liguori
2008-09-07 7:48 ` Avi Kivity
2008-09-07 11:57 ` Daniel P. Berrange
2008-09-07 13:12 ` Avi Kivity
2008-09-08 10:30 ` Stefano Stabellini
2008-09-08 10:35 ` Daniel P. Berrange
2008-09-08 10:53 ` Stefano Stabellini
2008-09-08 11:00 ` Daniel P. Berrange
2008-09-08 12:38 ` François Revol
2008-09-08 13:05 ` Jamie Lokier
2008-09-08 13:08 ` Anthony Liguori
2008-09-08 13:44 ` François Revol
2008-09-05 18:11 ` malc
2008-09-04 10:14 ` Stefano Stabellini
2008-09-07 3:09 ` Anthony Liguori
2008-09-04 10:21 ` Andreas Färber
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=48C54D62.5060509@codemonkey.ws \
--to=anthony@codemonkey.ws \
--cc=berrange@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).