public inbox for kvm@vger.kernel.org
 help / color / mirror / Atom feed
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

  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