Hi,

   There have been some reports of OSS lockups/panics on FreeBSD:
    http://4front-tech.com/forum/viewtopic.php?t=2563 (7-STABLE)
    http://4front-tech.com/forum/viewtopic.php?t=2718 (8-CURRENT)
    http://4front-tech.com/forum/viewtopic.php?t=2788 (6.3-RELEASE)

   This patch (hopefully) fixes the issues by returning locking to almost the 
way it was in build 1008, and disabling SX locks. It has been verified to work 
on FreeBSD 6.3-RELEASE, and the 7-STABLE thread above did mention 1008 was 
stable... Besides, spin locks are used on other OSs with no problem.
   There are two changes to locking from build 1008:
      A) Integrate a FreeBSD patch from ports[1] on systems where it's 
supported. That patch is known to allow the spin locks to work on FreeBSD 7 [2].
      B) Use M_WAITOK, instead of M_NOWAIT in MUTEX_INIT. This was used on 
>=1012 builds and doesn't seem to have caused issues by itself.

   There's also one other change for FreeBSD: FreeBSD uses a different 
direction for SNDCTL_DSP_GETBLKSIZE.    (__SIOR instead of __SIOWR). The patch 
defines a compatibility ioctl on FreeBSD and treats it as a real GETBLKSIZE. 
Again, this was patched by jkim[3], who would be an even better port maintainer 
if he actually tried to send patches upstream every once in a while...

   BTW, I've noticed that binary packages haven't been generated for FreeBSD 
6.x since build 1013 [4]. While I suspect most users use the FreeBSD ports 
system anyway, I wonder if the break was intentional.

Yours,
        Yair K.

[1] 
http://www.freebsd.org/cgi/cvsweb.cgi/ports/audio/oss/files/Attic/patch-kernel-OS-FreeBSD-os_freebsd.c?rev=1.1
[2] http://4front-tech.com/forum/viewtopic.php?t=2109
[3] http://www.freebsd.org/cgi/query-pr.cgi?pr=125542
[4] http://4front-tech.com/release/

Attachment: oss-freebsd.diff.gz
Description: GNU Zip compressed data

_______________________________________________
oss-devel mailing list
oss-devel@mailman.opensound.com
http://mailman.opensound.com/mailman/listinfo/oss-devel

Reply via email to