qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
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: Sun, 25 Jan 2009 09:11:29 -0600	[thread overview]
Message-ID: <497C8121.9080903@codemonkey.ws> (raw)
In-Reply-To: <43377A16-D52E-4C31-8112-BF565A35304B@suse.de>

Alexander Graf wrote:
> The kill() is called, but we're never receiving the signal. Also when 
> I kill -31 manually from the outside, the signal handler isn't invoked.

Anyone know much about signal delivery in Darwin?  Is there a way to do 
thread signaling directly?

>> If for some crazy reason the OS X port spawns another thread 
>> somewhere without masking SIGUSR2 correctly, it could be that the 
>> signal is getting lost.
>
> Hm - according to gdb things look pretty normal, no?
>
> (gdb) thread apply all bt
>
> Thread 2 (process 804 thread 0x1003):
> #0  0x91b3c3ae in __semwait_signal ()
> #1  0x91b67326 in _pthread_cond_wait ()
> #2  0x91b8c9f0 in pthread_cond_timedwait$UNIX2003 ()
> #3  0x000157b5 in aio_thread (unused=0x0) at posix-aio-compat.c:52
> #4  0x91b66095 in _pthread_start ()
> #5  0x91b65f52 in thread_start ()
>
> Thread 1 (process 804 thread 0x10b):
> #0  0x91b846f2 in select$DARWIN_EXTSN ()
> #1  0x00081443 in qemu_aio_wait () at aio.c:173
> #2  0x00080ef5 in bdrv_read_em (bs=0x4, sector_num=0, buf=0x4 <Address 
> 0x4 out of bounds>, nb_sectors=4) at block.c:1447
> #3  0x0007f9c9 in bdrv_guess_geometry (bs=0x806a00, pcyls=0xbfffdfcc, 
> pheads=0xbfffdfc8, psecs=0xbfffdfc4) at block.c:773
> #4  0x0002a238 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  0x0002af2d 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  0x00044199 in pc_init1 (ram_size=<value temporarily unavailable, 
> due to optimizations>, vga_ram_size=8388608, boot_device=0x11d946 
> "cad", kernel_filename=0x0, kernel_cmdline=0x11d33c "", 
> initrd_filename=0x0, pci_enabled=1, cpu_model=0x0) at 
> /Users/alex/work/qemu-osx/qemu/hw/pc.c:1027
> #7  0x000066e1 in main (argc=5, argv=0xbffff360, envp=0xbffff378) at 
> /Users/alex/work/qemu-osx/qemu/vl.c:5520

Can you dump the sigmasks of each thread to see if they're blocking them 
correctly?  Perhaps thread 2 is receiving the SIGUSR2 for some weird reason?

Maybe try a different signal.  Maybe SIGUSR2 has some significance in 
Darwin.

Regards,

Anthony Liguori

> Alex
>
>>
>>
>> Regards,
>>
>> Anthony Liguori
>>
>>>> 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.
>>>
>>> Hum - sounds like more effort and more probable breakage than 
>>> tracking this down ;-).
>>
>>> Alex
>>
>

  reply	other threads:[~2009-01-25 15:11 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
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 [this message]
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=497C8121.9080903@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).