[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v5] glib: fix g_poll early timeout on windows
From: |
Stanislav Vorobiov |
Subject: |
Re: [Qemu-devel] [PATCH v5] glib: fix g_poll early timeout on windows |
Date: |
Fri, 16 May 2014 10:44:46 +0400 |
User-agent: |
Mozilla/5.0 (X11; Linux i686; rv:24.0) Gecko/20100101 Thunderbird/24.5.0 |
Hi,
Could you please provide URL to download that image so that I
could reproduce this problem ? Also, qemu command line would be nice.
btw, I won't be able to look into this during next week, so some help
from someone else would be nice. I'll try to take a look later today
however...
On 05/16/2014 09:00 AM, Stefan Weil wrote:
> Am 09.05.2014 20:57, schrieb Stefan Hajnoczi:
>> On Thu, May 08, 2014 at 12:47:10PM +0400, Stanislav Vorobiov wrote:
>>> From: Sangho Park <address@hidden>
>>>
>>> g_poll has a problem on Windows when using
>>> timeouts < 10ms, in glib/gpoll.c:
>>>
>>> /* If not, and we have a significant timeout, poll again with
>>> * timeout then. Note that this will return indication for only
>>> * one event, or only for messages. We ignore timeouts less than
>>> * ten milliseconds as they are mostly pointless on Windows, the
>>> * MsgWaitForMultipleObjectsEx() call will timeout right away
>>> * anyway.
>>> */
>>> if (retval == 0 && (timeout == INFINITE || timeout >= 10))
>>> retval = poll_rest (poll_msgs, handles, nhandles, fds, nfds, timeout);
>>>
>>> so whenever g_poll is called with timeout < 10ms it does
>>> a quick poll instead of wait, this causes significant performance
>>> degradation of QEMU, thus we should use WaitForMultipleObjectsEx
>>> directly
>>>
>>> Signed-off-by: Stanislav Vorobiov <address@hidden>
>>> ---
>>> include/glib-compat.h | 9 +++-
>>> util/oslib-win32.c | 112
>>> +++++++++++++++++++++++++++++++++++++++++++++++++
>>> 2 files changed, 120 insertions(+), 1 deletion(-)
>>
>> Thanks, applied to my block tree:
>> https://github.com/stefanha/qemu/commits/block
>>
>> Stefan
>>
>
>
>
> Hi,
>
> the patch breaks hard disk i/o: a 64 bit executable built with MinGW-w64
> will no longer boot a ReactOS image (BIOS fails to detect a bootable
> disk). Booting a Linux CDROM seems to work and is indeed much faster.
>
> Regards
> Stefan
>
>