From: Anthony Liguori <anthony@codemonkey.ws>
To: Alexander Graf <agraf@suse.de>
Cc: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH] Disable AIO for Mac OS X
Date: Sat, 24 Jan 2009 15:25:10 -0600 [thread overview]
Message-ID: <497B8736.5040902@codemonkey.ws> (raw)
In-Reply-To: <71F46A21-2F3F-4526-BDE2-F5BD8312244D@suse.de>
Alexander Graf wrote:
>
> On 24.01.2009, at 21:53, Anthony Liguori wrote:
>
>> Alexander Graf wrote:
>>>
>>> On 24.01.2009, at 21:28, Anthony Liguori wrote:
>>>
>>>> Alexander Graf wrote:
>>>>> While trying current svn, it looks like AIO support compiles on
>>>>> Mac OS X finally. Unfortunately it is broken and as soon as I want
>>>>> to run any image, it endless loops in block.c:1446 which is:
>>>>>
>>>>> while (async_ret == NOT_DONE) {
>>>>> qemu_aio_wait();
>>>>> }
>>>>>
>>>>
>>>> Are you using cocoa?
>>>
>>> Yep. Nothing else works for x86_64 on Mac OS X ;-). Well - except
>>> for vnc.
>>>
>>>> I don't think the AIO code is broken here. I think something else
>>>> is broken and disabling AIO hides the symptom. Can you dig more
>>>> into this?
>>>
>>> Hum - sounds like an idea. I'm open for hints on how to dig in here.
>>> I can disable cocoa for starters of course.
>>
>> My guess would be that the completion signal isn't being delivered.
>> I'd start by disabling cocoa and then annotate things to see if the
>> completion signal every makes it to the aio system.
>
> So disabling cocoa doesn't really help. I recompiled with cocoa=no and
> still have the same issue:
>
> (gdb) thread apply all bt
>
> Thread 1 (process 38766 thread 0x10b):
> #0 0x91b846f2 in select$DARWIN_EXTSN ()
> #1 0x00081526 in qemu_aio_wait () at aio.c:158
> #2 0x00081055 in bdrv_read_em (bs=0x4, sector_num=0, buf=0x4 <Address
> 0x4 out of bounds>, nb_sectors=4) at block.c:1447
> #3 0x0007fb29 in bdrv_guess_geometry (bs=0x806a00, pcyls=0xbfffdfcc,
> pheads=0xbfffdfc8, psecs=0xbfffdfc4) at block.c:773
> #4 0x0002a398 in ide_init2 (ide_state=<value temporarily unavailable,
> due to optimizations>, hd0=0x806a00, hd1=0x0, irq=0x402a18) at
> /Users/alex/work/qemu-osx/qemu/hw/ide.c:2844
> #5 0x0002b08d in pci_piix3_ide_init (bus=0x4, hd_table=0xbfffeaf0,
> devfn=4, pic=0x402930) at /Users/alex/work/qemu-osx/qemu/hw/ide.c:3435
> #6 0x000442f9 in pc_init1 (ram_size=<value temporarily unavailable,
> due to optimizations>, vga_ram_size=8388608, boot_device=0x11da16
> "cad", kernel_filename=0x0, kernel_cmdline=0x11d40c "",
> initrd_filename=0x0, pci_enabled=1, cpu_model=0x0) at
> /Users/alex/work/qemu-osx/qemu/hw/pc.c:1027
> #7 0x000068d1 in main (argc=5, argv=0xbffff360, envp=0xbffff378) at
> /Users/alex/work/qemu-osx/qemu/vl.c:5520
>
> It's actually hanging in its first select() call.
Is posix-aio init getting called? What is being passed to select? It's
waiting for the signalfd to become readable and it's never becoming
readable. That could be because you never get the completion signal.
FWIW, at this point, we could drop the signal entirely and just use a
pipe for communication. Right now we use a signal that we catch and
then write to a pipe from the signal handler. We did this because
that's how posix-aio worked but since we don't use posix-aio anymore,
we're no longer limited by that.
Regards,
Anthony Liguori
> Alex
>
>>
>>
>> Regards,
>>
>> Anthony Liguori
>>
>>>
>>> Alex
>>>
>>>>
>>>>
>>>> Regards,
>>>>
>>>> Anthony Liguori
>>>>
>>>>> So for the time being, let's simply disable aio for Mac OS X.
>>>>>
>>>>> Signed-off-by: Alexander Graf <agraf@suse.de>
>>>>> ---
>>>>> configure | 1 +
>>>>> 1 files changed, 1 insertions(+), 0 deletions(-)
>>>>>
>>>>> diff --git a/configure b/configure
>>>>> index c3fbbbe..3e701b9 100755
>>>>> --- a/configure
>>>>> +++ b/configure
>>>>> @@ -259,6 +259,7 @@ cocoa="yes"
>>>>> audio_drv_list="coreaudio"
>>>>> audio_possible_drivers="coreaudio sdl fmod"
>>>>> OS_LDFLAGS="-framework CoreFoundation -framework IOKit"
>>>>> +aio="no"
>>>>> ;;
>>>>> SunOS)
>>>>> solaris="yes"
>>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>>
>>
>>
>>
>
next prev parent reply other threads:[~2009-01-24 21:25 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-01-24 19:59 [Qemu-devel] [PATCH] Disable AIO for Mac OS X Alexander Graf
2009-01-24 20:28 ` Anthony Liguori
2009-01-24 20:37 ` Alexander Graf
2009-01-24 20:53 ` Anthony Liguori
2009-01-24 21:14 ` Alexander Graf
2009-01-24 21:25 ` Anthony Liguori [this message]
2009-01-24 21:44 ` Alexander Graf
2009-01-24 23:27 ` Anthony Liguori
2009-01-25 9:49 ` Alexander Graf
2009-01-25 15:11 ` Anthony Liguori
2009-01-25 16:28 ` Jamie Lokier
2009-01-25 17:35 ` Anthony Liguori
2009-01-25 17:45 ` Alexander Graf
2009-01-25 17:53 ` Anthony Liguori
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=497B8736.5040902@codemonkey.ws \
--to=anthony@codemonkey.ws \
--cc=agraf@suse.de \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).