From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:34362) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WipzR-0004TM-SZ for qemu-devel@nongnu.org; Fri, 09 May 2014 14:57:54 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WipzN-0003s6-69 for qemu-devel@nongnu.org; Fri, 09 May 2014 14:57:49 -0400 Received: from mail-we0-x229.google.com ([2a00:1450:400c:c03::229]:44249) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WipzM-0003rv-Vt for qemu-devel@nongnu.org; Fri, 09 May 2014 14:57:45 -0400 Received: by mail-we0-f169.google.com with SMTP id u56so4406081wes.14 for ; Fri, 09 May 2014 11:57:43 -0700 (PDT) Date: Fri, 9 May 2014 20:57:40 +0200 From: Stefan Hajnoczi Message-ID: <20140509185740.GA28528@stefanha-thinkpad.redhat.com> References: <1399538830-4443-1-git-send-email-s.vorobiov@samsung.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1399538830-4443-1-git-send-email-s.vorobiov@samsung.com> Subject: Re: [Qemu-devel] [PATCH v5] glib: fix g_poll early timeout on windows List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Stanislav Vorobiov Cc: alex@alex.org.uk, sw@weilnetz.de, sangho1206.park@samsung.com, qemu-devel@nongnu.org, stefanha@redhat.com, syeon.hwang@samsung.com, pbonzini@redhat.com On Thu, May 08, 2014 at 12:47:10PM +0400, Stanislav Vorobiov wrote: > From: Sangho Park > > 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 > --- > 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