[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH] timer: fix qemu_poll_ns early timeout on window
From: |
Stanislav Vorobiov |
Subject: |
Re: [Qemu-devel] [PATCH] timer: fix qemu_poll_ns early timeout on windows |
Date: |
Fri, 18 Apr 2014 13:28:22 +0400 |
User-agent: |
Mozilla/5.0 (X11; Linux i686; rv:24.0) Gecko/20100101 Thunderbird/24.4.0 |
Hi, see below
On 04/18/2014 12:03 PM, Stefan Weil wrote:
> Am 18.04.2014 09:34, schrieb Stanislav Vorobiov:
>> Hi,
>>
>> Please see below
>>
>> On 04/18/2014 10:46 AM, Stefan Weil wrote:
>>> Hi,
> [...]
>>
>>>
>>> Would it be sufficient to round any timeout > 0 and < 10 to 10 for
>>> Windows hosts? Maybe this could be done in qemu_timeout_ns_to_ms.
>> We tried that, it gets almost as good as with this patch, but this
>> makes timeouts like, say, 2ms wait for 10ms, so with this patch it's
>> still better.
>>
>>> If
>>> this does not work, we still can use g_poll for timeout >= 10 and call a
>>> new Windows specific polling function for timeout < 10.
>> Does it have a point to separate things, if we've implemented this for
>> timeouts < 10ms
>> why not use it for timeouts >= 10ms ? The code in this patch is in fact
>> g_poll's
>> implementation without that "timeout >= 10" hack and it handles timeouts >=
>> 10ms
>> as well as g_poll does.
>
>
> Did you send a bug report to the maintainers of glib? I think it would
> be good to do so.
I've filed a bug report here - https://bugzilla.gnome.org/show_bug.cgi?id=728486
>
> We can override the buggy implementation of g_poll for Windows by
> redirecting any call of g_poll to a new g_poll_fixed function.
>
> In file include/glib-compat.h:
>
> #if defined(_WIN32)
> /* g_poll does not handle timeout < 10 ms correctly, so use wrapper. */
> #define g_poll(fds, nfds, timeout) g_poll_fixed((fds, nfds, timeout)
> gint g_poll_fixed(GPollFD *fds, guint nfds, gint timeout);
> #endif
>
> Then move your code into a new function g_poll_fixed() in file
> util/oslib-win32.c (and add there some comments, too).
>
> There is also some g_poll code in include/qemu-common.h. This should
> also be moved to include/glib-compat.h and must be excluded for _WIN32
> when you add g_poll_fixed.
>
> Stefan
>
>
- [Qemu-devel] [PATCH] timer: fix qemu_poll_ns early timeout on windows, Stanislav Vorobiov, 2014/04/15
- Re: [Qemu-devel] [PATCH] timer: fix qemu_poll_ns early timeout on windows, Stanislav Vorobiov, 2014/04/17
- Re: [Qemu-devel] [PATCH] timer: fix qemu_poll_ns early timeout on windows, Sangho Park, 2014/04/17
- Re: [Qemu-devel] [PATCH] timer: fix qemu_poll_ns early timeout on windows, Stefan Weil, 2014/04/18
- Re: [Qemu-devel] [PATCH] timer: fix qemu_poll_ns early timeout on windows, Stanislav Vorobiov, 2014/04/18
- Re: [Qemu-devel] [PATCH] timer: fix qemu_poll_ns early timeout on windows, Stefan Weil, 2014/04/18
- Re: [Qemu-devel] [PATCH] timer: fix qemu_poll_ns early timeout on windows,
Stanislav Vorobiov <=
- [Qemu-devel] [PATCH v2] glib: fix g_poll early timeout on windows, Stanislav Vorobiov, 2014/04/18
- Re: [Qemu-devel] [PATCH v2] glib: fix g_poll early timeout on windows, Stefan Weil, 2014/04/18
- Re: [Qemu-devel] [PATCH] timer: fix qemu_poll_ns early timeout on windows, Alex Bligh, 2014/04/18
- Re: [Qemu-devel] [PATCH] timer: fix qemu_poll_ns early timeout on windows, Stanislav Vorobiov, 2014/04/18
- Re: [Qemu-devel] [PATCH] timer: fix qemu_poll_ns early timeout on windows, Alex Bligh, 2014/04/18
- Re: [Qemu-devel] [PATCH] timer: fix qemu_poll_ns early timeout on windows, Paolo Bonzini, 2014/04/28