From: Nicholas Knight <tegeran@home.com>
To: t.sailer@alumni.ethz.ch, Thomas Sailer <sailer@scs.ch>,
jgarzik@mandrakesoft.com, linux-kernel@vger.kernel.org
Cc: adrian@humboldt.co.uk
Subject: Re: via82cxxx_audio locking problems
Date: Thu, 20 Sep 2001 04:33:35 -0700 [thread overview]
Message-ID: <01092004333500.00182@c779218-a> (raw)
In-Reply-To: <3BA9AB43.C26366BF@scs.ch>
In-Reply-To: <3BA9AB43.C26366BF@scs.ch>
On Thursday 20 September 2001 01:39 am, Thomas Sailer wrote:
> This applies to version 1.1.5 as well as the version in
> linux-2.4.10-pre12 and linux-2.4.9-ac12.
>
> 1) There is one semaphore (syscall_sem) that is held during
> calls from userspace. It is even kept while going to sleep
> during read and write syscalls. This locks out other users,
> eg. mixers, for a potentially very long time, seconds are
> common but it may almost be arbitrarily long. Try changing
> the volume with eg. gmix while playing something with eg. xmms.
>
thankyouthankyouthankyouthankyouthankyou
Adrian Cox was working on this after I raised the issue on the list, but
nobody got anywhere. All we knew was that there were temporary lockups
appearing when anything was using the mixer.
> Dropping and reacquiring syscall_sem around interruptible_sleep_on
> in via_dsp_do_read, via_dsp_do_write and via_dsp_drain_playback
> should solve the problem. Does anyone see a problem with this?
>
> 2) When some kind of error happens during read or write after
> some samples have already been dequeued and copied to the user
> buffer, the number of copied bytes should be returned instead
> of the error code, to avoid loosing samples.
>
> 3) The use of interruptible_sleep_on results in a small race where
> wake_ups may be lost. Unlikely to hit though.
>
> 4) The down_trylock and returning -EAGAIN in via_down_syscall looks
> questionable, EAGAIN with O_NONBLOCK normally means I/O has to
> be completed first, not that there is contention on some internal
> synchronisation primitive.
>
> Jeff, do you object any of this? Would you accept a patch to ameliorate
> the situation? Or would you like to fix this yourself?
I've emailed Jeff 2 or 3 times about the lock/freezes related to
volume/mixer control, and never got a response, I'm not sure he's
actually maintaining the driver. The last release of it from him was all
fixes from someone else.
Adrian Cox was helping to track this down before, and is probably the
best bet, I've CC'd Adrian to this. Unfortunitely I haven't seen any
messages from him on lk in a while, so I'm not sure if he's on vacation
or what.
My advice is, give us a patch! :) Since Jeff hasn't been heard from for a
while, I can't see anyone, including Jeff, having a problem with this.
Is there anyone out there that could start maintaining the driver?
Inactive drivers are kind of a pain :(
>
> Tom
>
> PS: Is there any better publicly available chip documentation than
> the 120 page PDF file?
next prev parent reply other threads:[~2001-09-20 11:35 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2001-09-20 8:39 via82cxxx_audio locking problems Thomas Sailer
2001-09-20 11:33 ` Nicholas Knight [this message]
2001-09-20 12:07 ` Adrian Cox
2001-09-20 12:24 ` Nicholas Knight
2001-09-20 13:40 ` André Dahlqvist
2001-09-20 13:41 ` Thomas Sailer
2001-09-21 9:27 ` Thomas Sailer
2001-09-21 12:06 ` André Dahlqvist
2001-09-21 13:01 ` Lockups fixed! (Was: via82cxxx_audio locking problems) André Dahlqvist
2001-09-20 16:33 ` via82cxxx_audio locking problems Jeff Garzik
2001-09-21 7:50 ` Adrian Cox
2001-09-21 8:36 ` David Chow
2001-09-21 8:50 ` David Chow
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=01092004333500.00182@c779218-a \
--to=tegeran@home.com \
--cc=adrian@humboldt.co.uk \
--cc=jgarzik@mandrakesoft.com \
--cc=linux-kernel@vger.kernel.org \
--cc=sailer@scs.ch \
--cc=t.sailer@alumni.ethz.ch \
/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