From: Herbert Xu <herbert@gondor.apana.org.au>
To: Jeff Garzik <jgarzik@pobox.com>
Cc: Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: Re: [I810_AUDIO] 1/x: Fix wait queue race in drain_dac
Date: Tue, 13 Jan 2004 09:26:10 +1100 [thread overview]
Message-ID: <20040112222610.GA20177@gondor.apana.org.au> (raw)
In-Reply-To: <40031623.2000204@pobox.com>
On Mon, Jan 12, 2004 at 04:48:19PM -0500, Jeff Garzik wrote:
>
> hmmm, I'll have to think on this one a bit. You are described observed
> behavior here... can you go a bit deeper, and describe what two code
> paths are racing? I think I might a _different_ race in the code we're
> looking at, but I do not yet see the race you are describing :(
A B
drain_dac()
count > 0
i810_channel_interrupt()
i810_update_ptr()
count = 0
wake_up()
set_current_state()
schedule_timeout()
*TIMEOUT*
> >schedule() already checks for signals.
>
> Well -- A signal won't be pending until after you call
> schedule_timeout() ;-) A signal, particularly SIGINT, might even occur
> _during_ the schedule_timeout().
Yes, but as long as you check signal_pending at least once in each
loop it does the right thing. Can you point me to a scenario where
checking it right after schedule_timeout produces different behaviour
than the current code?
Cheers,
--
Debian GNU/Linux 3.0 is out! ( http://www.debian.org/ )
Email: Herbert Xu ~{PmV>HI~} <herbert@gondor.apana.org.au>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
prev parent reply other threads:[~2004-01-12 22:26 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-11-22 7:09 Herbert Xu
2003-11-22 7:13 ` [I810_AUDIO] 2/x: " Herbert Xu
2003-11-22 7:19 ` [I810_AUDIO] 3/x: Remove bogus CIV_TO_LVI Herbert Xu
2003-11-22 8:22 ` [I810_AUDIO] 4/x: Clean up with macros Herbert Xu
2003-11-22 8:26 ` [I810_AUDIO] 5/x: Fixed partial DMA transfers Herbert Xu
2003-11-22 8:39 ` Herbert Xu
2003-11-22 23:51 ` [I810_AUDIO] 7/x: Fix OSS fragments Herbert Xu
2003-11-22 23:53 ` [I810_AUDIO] 8/x: Remove divides on playback Herbert Xu
2003-11-23 0:02 ` [I810_AUDIO] 9/x: Fix drain_dac loop when signals_allowed == 0 Herbert Xu
2003-11-23 11:04 ` [I810_AUDIO] 10/x: Fix reads/writes % 4 != 0 Herbert Xu
2004-01-17 3:58 ` [I810_AUDIO] 11/x: Fix dead lock in drain_dac Herbert Xu
2004-01-11 21:04 ` [I810_AUDIO] 2/x: Fix wait queue race " Jeff Garzik
2003-12-18 7:23 ` [I810_AUDIO] 1/x: " Jeff Garzik
2004-01-11 21:00 ` Jeff Garzik
2004-01-12 9:46 ` Herbert Xu
2004-01-12 21:48 ` Jeff Garzik
2004-01-12 22:26 ` Herbert Xu [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=20040112222610.GA20177@gondor.apana.org.au \
--to=herbert@gondor.apana.org.au \
--cc=jgarzik@pobox.com \
--cc=linux-kernel@vger.kernel.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
all inboxes | Powered by JetHome®