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/
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