[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: |
Stefan Weil |
Subject: |
Re: [Qemu-devel] [PATCH v5] glib: fix g_poll early timeout on windows |
Date: |
Fri, 16 May 2014 07:00:24 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux i686; rv:24.0) Gecko/20100101 Thunderbird/24.5.0 |
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