All of lore.kernel.org
 help / color / mirror / Atom feed
From: Anthony Liguori <anthony@codemonkey.ws>
To: Paolo Bonzini <pbonzini@redhat.com>
Cc: Blue Swirl <blauwirbel@gmail.com>,
	Anthony Liguori <aliguori@us.ibm.com>,
	qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH 2/2] main: switch qemu_set_fd_handler to g_io_add_watch
Date: Wed, 07 Sep 2011 09:53:19 -0500	[thread overview]
Message-ID: <4E67855F.90004@codemonkey.ws> (raw)
In-Reply-To: <4E678267.4020905@redhat.com>

On 09/07/2011 09:40 AM, Paolo Bonzini wrote:
> On 09/07/2011 02:42 PM, Anthony Liguori wrote:
>> On 09/07/2011 02:03 AM, Paolo Bonzini wrote:
>>> On 09/06/2011 05:59 PM, Anthony Liguori wrote:
>>>> So it should be possible to add a new Source type that just selects
>>>> on a
>>>> file descriptor and avoid GIOChannels?
>>>
>>> I think you still have the problem that glib on Windows waits for
>>> HANDLEs, not file descriptors. Also, I'm not sure it's worth it though
>>> as long as slirp still does its own fill/poll.
>>
>> So how do we fix this long term?
>
> Long term, we use GIOChannels for everything, assuming that's possible
> at all. More realistically, we could rewrite socket handling on Windows
> so that we can use g_poll instead of select (don't wait for me doing that).

I assume switching to GIO would resolve all of these issues?

>
> Another possibility, the ugliest but also the most realistic, is to
> separate the Windows and POSIX implementations of the main loop more
> sharply. This way glib's main loop can be integrated (differently) into
> both implementations.
>
> In the meanwhile: just do not rely on glib sources on Windows. There
> isn't any large benefit in this patch, and it actually complicates the
> straightforward code in iohandler. Just revert it and #ifdef the glib
> integration in patch 1/2. Since I don't see a 100%-glib main loop
> anytime soon, we are unlikely to lose much. If anybody introduces a
> feature that requires Avahi or GTK+, it won't be supported on Windows.

My main motivation is unit testing.  I want to be able to have device 
models only rely on glib main loop primitives such that we can easily 
use devices in a simple glib main loop.

The split main loop approach won't work for that.

Regards,

Anthony Liguori

>
>> We seem to get away with using fds
>> today and not HANDLEs, do fds on Windows not work the same with poll as
>> they do with select?
>
> Here is a summary table:
>
> select socket HANDLEs only
> poll does not exist
> WaitForMultipleObjects all other HANDLEs
> g_poll all other HANDLEs
>
> We only use select for Windows socket handles today. Everything else is
> handled separately (with WaitForMultipleObjects) by
> osdep-win32.c/oslib-win32.c.
>
> Paolo
>

  reply	other threads:[~2011-09-07 14:53 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-08-22 13:12 [Qemu-devel] [PATCH 1/2] Add glib support to main loop Anthony Liguori
2011-08-22 13:12 ` [Qemu-devel] [PATCH 2/2] main: switch qemu_set_fd_handler to g_io_add_watch Anthony Liguori
2011-08-22 13:40   ` Paolo Bonzini
2011-08-22 13:45     ` Anthony Liguori
2011-08-22 13:47       ` Paolo Bonzini
2011-09-06 14:31         ` Paolo Bonzini
2011-09-06 15:59           ` Anthony Liguori
2011-09-07  7:03             ` Paolo Bonzini
2011-09-07  8:08               ` Jan Kiszka
2011-09-07 12:42               ` Anthony Liguori
2011-09-07 14:40                 ` Paolo Bonzini
2011-09-07 14:53                   ` Anthony Liguori [this message]
2011-09-07 15:26                     ` Paolo Bonzini
2011-11-24 17:11         ` Fabien Chouteau
2011-11-24 17:30           ` Paolo Bonzini
2011-11-25 10:24             ` Fabien Chouteau
2011-11-25 10:46               ` Paolo Bonzini
2011-11-25 14:46                 ` Fabien Chouteau
2011-11-25 14:49                   ` Paolo Bonzini
2011-11-25 15:33                     ` Fabien Chouteau
2011-11-25 15:48                       ` Paolo Bonzini
2011-11-25 16:56                         ` Fabien Chouteau
2011-11-25 19:36                           ` Paolo Bonzini
2011-11-28  9:13                             ` Fabien Chouteau
2011-09-04 14:03   ` Avi Kivity
2011-09-04 14:51     ` Anthony Liguori
2011-09-04 15:01     ` Anthony Liguori
2011-09-07 12:54       ` Avi Kivity
2011-09-05  9:46     ` Avi Kivity
2011-09-01 18:54 ` [Qemu-devel] [PATCH 1/2] Add glib support to main loop Anthony Liguori

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=4E67855F.90004@codemonkey.ws \
    --to=anthony@codemonkey.ws \
    --cc=aliguori@us.ibm.com \
    --cc=blauwirbel@gmail.com \
    --cc=pbonzini@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.