From: Avi Kivity <avi@qumranet.com>
To: Anthony Liguori <anthony@codemonkey.ws>
Cc: kvm-devel@lists.sourceforge.net, Marcelo Tosatti <mtosatti@redhat.com>
Subject: Re: [patch 2/2] QEMU: decrease console "refresh rate" with -nographic
Date: Wed, 16 Apr 2008 11:37:00 +0300 [thread overview]
Message-ID: <4805BAAC.2010000@qumranet.com> (raw)
In-Reply-To: <4804F075.5090502@codemonkey.ws>
Anthony Liguori wrote:
>>
>> What about aio completions? The only race-free way to handle both
>> posix aio completion and fd readiness is signals AFAIK.
>
> We poll aio completion after the select don't we? Worst case scenario
> we miss a signal and wait to poll after the next select event. That's
> going to occur very often because of the timer.
if select() doesn't enable signals (like you can do with pselect) you
may sit for a long time in select() until the timer expires.
Consider a 100Hz Linux guest running 'ls -lR' out of a cold cache:
instead of 1-2 ms disk latencies you'll see 10 ms latencies, killing
performance by a factor of 5.
I see the following possible solutions:
1. Apply Anders' patch and keep I/O completions signal based.
2. Use signalfd() to convert aio completions to fd readiness, emulating
signalfd() using a thread which does sigwait()+write() (to a pipe) on
older hosts
3. Use a separate thread for aio completions
4. Use pselect(), live with the race on older hosts (it was introduced
in 2.6.16, which we barely support anyway), live with the signal
delivery inefficiency.
When I started writing this email I was in favor of (1), but now with
the new signalfd emulation I'm leaning towards (2). I still think (1)
should be merged, preferably to qemu upstream.
--
error compiling committee.c: too many arguments to function
-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference
Don't miss this year's exciting event. There's still time to save $100.
Use priority code J8TL2D2.
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
next prev parent reply other threads:[~2008-04-16 8:37 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-04-11 18:38 [patch 0/2] SIGIO handling changes Marcelo Tosatti
2008-04-11 18:38 ` [patch 1/2] QEMU: use SIGARLM for alarm timers, enable SIGIO on qemu_set_fd_handler2() Marcelo Tosatti
2008-04-11 18:59 ` Anthony Liguori
2008-04-11 19:44 ` Marcelo Tosatti
2008-04-13 15:05 ` Avi Kivity
2008-04-11 19:51 ` Marcelo Tosatti
2008-04-11 18:38 ` [patch 2/2] QEMU: decrease console "refresh rate" with -nographic Marcelo Tosatti
2008-04-13 16:30 ` Anders
2008-04-14 15:02 ` Marcelo Tosatti
2008-04-14 16:24 ` Avi Kivity
2008-04-14 17:24 ` Marcelo Tosatti
2008-04-14 18:31 ` Anthony Liguori
2008-04-15 5:39 ` Avi Kivity
2008-04-15 5:43 ` Carsten Otte
2008-04-15 13:40 ` Anthony Liguori
2008-04-15 13:47 ` Avi Kivity
2008-04-15 15:12 ` Marcelo Tosatti
2008-04-15 5:40 ` Avi Kivity
2008-04-15 7:26 ` Anders
2008-04-15 9:27 ` Avi Kivity
2008-04-15 14:20 ` Anthony Liguori
2008-04-15 14:45 ` Avi Kivity
2008-04-15 15:04 ` Marcelo Tosatti
2008-04-15 15:34 ` Anthony Liguori
2008-04-15 15:43 ` Avi Kivity
2008-04-15 18:14 ` Anthony Liguori
2008-04-16 8:37 ` Avi Kivity [this message]
2008-04-16 10:26 ` Anders
2008-04-16 11:23 ` Avi Kivity
2008-04-16 13:53 ` Anthony Liguori
2008-04-16 14:24 ` Carsten Otte
2008-04-17 12:53 ` Avi Kivity
2008-04-17 9:37 ` Avi Kivity
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=4805BAAC.2010000@qumranet.com \
--to=avi@qumranet.com \
--cc=anthony@codemonkey.ws \
--cc=kvm-devel@lists.sourceforge.net \
--cc=mtosatti@redhat.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox