From: Anthony Liguori <anthony@codemonkey.ws>
To: Avi Kivity <avi@qumranet.com>
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 08:53:25 -0500 [thread overview]
Message-ID: <480604D5.3040401@codemonkey.ws> (raw)
In-Reply-To: <4805BAAC.2010000@qumranet.com>
Avi Kivity wrote:
> 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.
There is a 5th option. Do away with the use of posix aio. We get
absolutely no benefit from it because it's limited to a single thread.
Fabrice has reverted a patch to change that in the past.
Regards,
Anthony Liguori
-------------------------------------------------------------------------
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 13:53 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
2008-04-16 10:26 ` Anders
2008-04-16 11:23 ` Avi Kivity
2008-04-16 13:53 ` Anthony Liguori [this message]
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=480604D5.3040401@codemonkey.ws \
--to=anthony@codemonkey.ws \
--cc=avi@qumranet.com \
--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