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

  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