From owner-freebsd-current@FreeBSD.ORG Wed Dec 10 08:52:52 2003 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 1015916A4CE for ; Wed, 10 Dec 2003 08:52:52 -0800 (PST) Received: from hak.cnd.mcgill.ca (hak.cnd.mcgill.ca [132.216.11.133]) by mx1.FreeBSD.org (Postfix) with ESMTP id 6B62643D2A for ; Wed, 10 Dec 2003 08:52:50 -0800 (PST) (envelope-from mat@hak.cnd.mcgill.ca) Received: from hak.cnd.mcgill.ca (localhost [127.0.0.1]) by hak.cnd.mcgill.ca (8.12.9/8.12.8) with ESMTP id hBAGnw15027651; Wed, 10 Dec 2003 11:49:58 -0500 (EST) (envelope-from mat@hak.cnd.mcgill.ca) Received: (from mat@localhost) by hak.cnd.mcgill.ca (8.12.9/8.12.8/Submit) id hBAGnvNf027650; Wed, 10 Dec 2003 11:49:57 -0500 (EST) Date: Wed, 10 Dec 2003 11:49:57 -0500 From: Mathew Kanner To: Ian Freislich Message-ID: <20031210164957.GJ11072@cnd.mcgill.ca> References: <20031209192557.GE11072@cnd.mcgill.ca> <49687.1071043939@za.uu.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <49687.1071043939@za.uu.net> User-Agent: Mutt/1.4.1i Organization: I speak for myself, operating in Montreal, CANADA X-Spam-Status: No, hits=0.0 required=5.0 tests=none autolearn=no version=2.60 X-Spam-Checker-Version: SpamAssassin 2.60 (1.212-2003-09-23-exp) on hak.cnd.mcgill.ca cc: freebsd-current@freebsd.org Subject: Re: Why are sound ioctl calls so slow? X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Dec 2003 16:52:52 -0000 On Dec 10, Ian Freislich wrote: > Mathew Kanner wrote: > > > 3224 mpg123 0.000748 CALL ioctl(0x3,SNDCTL_DSP_SETFMT,0xbfbff834) > > > 3224 mpg123 0.026260 RET ioctl 0 > > > > > > Can someone firstly tell me whether or not if it is reasonable to > > > expect the ioctl call to be any faster. Perhaps my reasoning is > > > flawed, but I'd expect about 61000 instructions to be executed by > > > the CPU (133MHz) in 23ms at an average of 50 clock cycles per > > > instruction not taking cache misses into account. I cannot concieve > > > of any reason why it should take 61000 instructions to write the > > > format, speed or stereo to the sound hardware. > > > > > > Does each ioctl result in a context switch which means that the cpu > > > spends time on other processes for each ioctl call? I'm not sure > > > that this is what happens because mpg123 uses 100% cpu for about > > > 10 seconds and then settles down to about 40% once it actually > > > starts decoding the mp3. > > > > Ian, > > Sounds like you understand the problem, maybe you should > > investigate :) > > Hmm, I was hoping someone familiar with the sound stuff would be > able to say whether I was smoking my socks or not. You aren't gonna find it. > This is very > uncharted territory for me. I'll try to have a look and see if I > can figure out what gives this week end. > > > My first guess would be the device is rebuilding feeder/mixer > > chains every time mpg123 changes format. I would run the test one > > more time, disabling vchans and rate conversion. > > > > sysctl hw.snd.report_soft_formats=0 hw.snd.maxautovchans=0 > > That didn't make a (noticeable) difference: > > 4090 mpg123 0.000603 CALL ioctl(0x3,SNDCTL_DSP_STEREO,0xbfbff864) > 4090 mpg123 0.026047 RET ioctl 0 > 4090 mpg123 0.000582 CALL ioctl(0x3,SNDCTL_DSP_SPEED,0xbfbff864) > 4090 mpg123 0.017735 RET ioctl 0 > 4090 mpg123 0.000414 CALL ioctl(0x3,SNDCTL_DSP_SETFMT,0xbfbff864) > 4090 mpg123 0.026004 RET ioctl 0 You complained that mpg123 was doing hundered of system calls. Did that remain constant aswell? > > > I didn't notice which version of fbsd that you are using. > > 5.2-CURRENT (2003-10-21 00:00:00 GMT) and 4.9-STABLE. --Mat -- The state has no business in the bedrooms of the nation. - Pierre Elliott Trudeau