All of lore.kernel.org
 help / color / mirror / Atom feed
From: Gerd Hoffmann <kraxel@redhat.com>
To: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [patch] Fix block I/O hang.
Date: Thu, 13 Nov 2008 10:14:31 +0100	[thread overview]
Message-ID: <491BEFF7.4070607@redhat.com> (raw)
In-Reply-To: <491AEEE9.5010900@codemonkey.ws>

Anthony Liguori wrote:
> Gerd Hoffmann wrote:
>>  
>>> Under what circumstances?  posix_aio_read() is only invoked from a
>>> select callback.  This means there should be data available to be read.
>>>     
>>
>> Well, there are *two* select loops:  main_loop_wait() and
>> qemu_aio_wait().  Calling sync block i/o functions from a i/o handler
>> causes the two select loops run nested => boom.
> 
> Yeah, qemu_aio_wait needs to die.  Can you resubmit your patch with a
> better description, and change the read() look in posix_aio_read() to
> consume as much data as possible before hitting EAGAIN?

I've fixed my problem by changing xen_disk to use a bottom half for
actual work, so the block read/write calls are moved out of the select
loop anyway.  Which turned out to be useful for aio support too.

So I'm fine again with the current state.  I can create such a patch
nevertheless though.

cheers,
  Gerd

      reply	other threads:[~2008-11-13  9:14 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-11-11 16:35 [Qemu-devel] [patch] Fix block I/O hang Gerd Hoffmann
2008-11-11 16:49 ` Anthony Liguori
2008-11-11 17:48   ` Gerd Hoffmann
2008-11-11 17:55     ` Anthony Liguori
2008-11-11 20:51       ` Gerd Hoffmann
2008-11-11 21:07         ` Anthony Liguori
2008-11-11 21:34           ` Gerd Hoffmann
2008-11-12 13:49     ` Johannes Stezenbach
2008-11-12 14:58       ` Anthony Liguori
2008-11-12 15:01       ` Gerd Hoffmann
2008-11-12 13:03   ` Gerd Hoffmann
2008-11-12 14:57     ` Anthony Liguori
2008-11-13  9:14       ` Gerd Hoffmann [this message]

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=491BEFF7.4070607@redhat.com \
    --to=kraxel@redhat.com \
    --cc=qemu-devel@nongnu.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.