qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Mike Nordell" <tamlin@algonet.se>
To: qemu-devel@nongnu.org
Subject: [Qemu-devel] Re: OSS audio debugging
Date: Fri, 11 Jun 2004 00:59:04 +0200	[thread overview]
Message-ID: <000701c44f3e$882d3fd0$0401a8c0@putte2k> (raw)

malc wrote:

> ... while im figuring this out you can
> try experimental SDL output driver(but see caveats):
> http://www.boblycat.org/~malc/code/patches/qemu/5_aqemu.patch.gz
[snip]
> b. it was hacked in an hour or so and therefore i can not claim that it
>    works all that well, in fact it contains a deadlock

Indeed.

> P.S. Can someone on Windows try this?

Done, and it fails miserably. It hangs QEMU due to the deadlock (NT5sp4 both
host and guest).

One thread is waiting in for the semaphore "s" in audio_callback, called
from SDL_RunAudio in SDL's audio thread, while another thread is doing some
seriously wicked:

dsp_write (sb16.c)
complete (sb16.c)
dma_cmd (sb16.c)
AUD_reset (oss.c)
maybe_open (oss.c)
do_open (oss.c)
SDL_CloseAudio
SDL_QuitSubSystem
SDL_AudioQuit
SDL_WaitThread

The deadlock is of course that the callback thread is hanging in sem_wait()
in oss.c, while the requested shutdown of SDL's audio subsystem is waiting
for that very audio thread to die. Yep, instant deadlock (not to mention a
possibly very slow and heavy-weight operation in response to a virtual SB16
DSP DMA transfer).

Another thing I found odd was the use of AUDIO_S16/copy_u16_to_s16 in
response to a request for AUD_FMT_U16. Any particular reason to not request
AUDIO_U16 and use copy_no_conversion?

Problems set aside, this is a giant leap forward for Win32 host audio and is
something I really want to see get into CVS once cleaned up and debugged.
I'll do some more debugging on my side too.

Thanks!

/Mike

             reply	other threads:[~2004-06-10 23:00 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-06-10 22:59 Mike Nordell [this message]
2004-06-11  5:23 ` [Qemu-devel] Re: OSS audio debugging malc
  -- strict thread matches above, loose matches on Subject: below --
2004-06-14  7:57 Mike Nordell
2004-06-14  9:02 ` malc
2004-06-14 15:56 ` malc
2004-06-14 19:01 ` Fabrice Bellard
2004-06-14 19:29   ` Jean-Michel POURE

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='000701c44f3e$882d3fd0$0401a8c0@putte2k' \
    --to=tamlin@algonet.se \
    --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).