From owner-cvs-src@FreeBSD.ORG Sat Jun 16 03:37:29 2007 Return-Path: X-Original-To: cvs-src@FreeBSD.org Delivered-To: cvs-src@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id C873016A469; Sat, 16 Jun 2007 03:37:29 +0000 (UTC) (envelope-from ariff@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id B4DBA13C46C; Sat, 16 Jun 2007 03:37:29 +0000 (UTC) (envelope-from ariff@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l5G3bTU0066249; Sat, 16 Jun 2007 03:37:29 GMT (envelope-from ariff@repoman.freebsd.org) Received: (from ariff@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l5G3bTd8066242; Sat, 16 Jun 2007 03:37:29 GMT (envelope-from ariff) Message-Id: <200706160337.l5G3bTd8066242@repoman.freebsd.org> From: Ariff Abdullah Date: Sat, 16 Jun 2007 03:37:29 +0000 (UTC) To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org X-FreeBSD-CVS-Branch: HEAD Cc: Subject: cvs commit: src/sys/dev/sound version.h src/sys/dev/sound/pci es137x.c src/sys/dev/sound/pcm buffer.c channel.c channel.h dsp.c dsp.h feeder.c feeder_rate.c mixer.c mixer.h sndstat.c sound.c sound.h vchan.c src/sys/dev/sound/usb uaudio.c X-BeenThere: cvs-src@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 16 Jun 2007 03:37:29 -0000 ariff 2007-06-16 03:37:29 UTC FreeBSD src repository Modified files: sys/dev/sound version.h sys/dev/sound/pci es137x.c sys/dev/sound/pcm buffer.c channel.c channel.h dsp.c dsp.h feeder.c feeder_rate.c mixer.c mixer.h sndstat.c sound.c sound.h vchan.c sys/dev/sound/usb uaudio.c Log: Last (again ?!?) major commit for RELENG_7, featuring total Giant eradication in/from userland path, countless locking fixes, etc. - General sleep call through msleep(9) has been converted to condvar(9) with better consistencies. - Heavily guard every possible "slow path" entries (open(), close(), few ioctl()s, sysctls), but once it entering "fast path" (io, interrupt started), they are free to fly on their own. - Rearrange locking sequences, resulting better concurrency and serialization. Large part doesn't even need locking at all, and will be removed in future. Less clutter, except in few places due to lock ordering. - Anonymous mixer object creation/deletion to simplify mixer handling beyond typical mixer ioctls. Submitted by: chibis (with modifications) - Add few mix_[get|set|..] functions to avoid calling mixer_ioctl() directly using cryptic arguments. - Locking fixes to avoid possible deadlock with (still under Giant) USB. - Better simplex/duplex device handling. - Recover mmap() functionality for recording, which has been lost since 2.2.x - 3.x (the introduction of newpcm). Full-duplex mmap still doesn't work (due to VM/page design), but people still can mmap both by opening each direction separately. mmaped playback is guarantee to work either way. - New sysctl: "hw.snd.compat_linux_mmap" to allow PROT_EXEC page mapping, due to recent changes in linux compatibility layer which require it. All linux applications that using sound + mmap() (mostly games) require this to be enabled. Disabled by default. - Other goodies.. too many, that will increase releng7 shareholder value and make users of releng6 (and below) cry ;) * This commit should be atomic. If anything goes wrong (not counting problem originated from elsewhere), I will not hesitate to revert everything back within 12 hours. This substantial changes itself not a rocket science and the process has begun for almost 2 years, and lots of incremental changes are already in place during that period of time. * Some issues does occur in snd_emu10kx (note the 'x') due to various internal locking issues and it is currently being worked on by chibis. Tested by: chibis (Yuriy Tsibizov), joel, Alexandre Vieira, many innocent souls... Revision Changes Path 1.69 +30 -28 src/sys/dev/sound/pci/es137x.c 1.37 +1 -1 src/sys/dev/sound/pcm/buffer.c 1.121 +167 -223 src/sys/dev/sound/pcm/channel.c 1.37 +28 -2 src/sys/dev/sound/pcm/channel.h 1.106 +702 -420 src/sys/dev/sound/pcm/dsp.c 1.13 +5 -0 src/sys/dev/sound/pcm/dsp.h 1.43 +0 -21 src/sys/dev/sound/pcm/feeder.c 1.23 +5 -5 src/sys/dev/sound/pcm/feeder_rate.c 1.61 +389 -157 src/sys/dev/sound/pcm/mixer.c 1.19 +20 -3 src/sys/dev/sound/pcm/mixer.h 1.28 +25 -15 src/sys/dev/sound/pcm/sndstat.c 1.116 +347 -267 src/sys/dev/sound/pcm/sound.c 1.78 +208 -0 src/sys/dev/sound/pcm/sound.h 1.36 +68 -63 src/sys/dev/sound/pcm/vchan.c 1.34 +10 -10 src/sys/dev/sound/usb/uaudio.c 1.2 +1 -1 src/sys/dev/sound/version.h