Subject: kern/35961: azalia_mappage() is unimplemented, applications requiring mmap() access do not work, a lot of audio drop-outs or excessive latency, etc.
To: None <kern-bug-people@netbsd.org, gnats-admin@netbsd.org,>
From: None <blair.sadewitz@gmail.com>
List: netbsd-bugs
Date: 03/09/2007 14:00:00
>Number:         35961
>Category:       kern
>Synopsis:       azalia_mappage() is unimplemented, applications requiring mmap() access do not work, a lot of audio drop-outs or excessive latency, etc.
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    kern-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Fri Mar 09 14:00:00 +0000 2007
>Originator:     Blair Sadewitz
>Release:        4.99.13
>Organization:
>Environment:
NetBSD dexamyl 4.99.13 NetBSD 4.99.13 (DEXAMYL) #0: Fri Mar  9 02:01:15 EST 2007  blair@dexamyl:/usr/src/sys/arch/amd64/compile/DEXAMYL amd64
>Description:
azalia(4) seems to be one of the only audio drivers that do not support mmap() of the DMA buffer.  This results in poor audio performance even under moderate system load.  I have a Pentium D 3GHz processor with 1GB of RAM, and using both cores--even running processes with pri +20--will result in a buffer underrun and/or other errors that lead to the stream stuttering indefinitely until the stream is restarted.

Also, some audio applications need this functionality to work properly.

>How-To-Repeat:
Try using audio/jack or playing audio under moderate-heavy system load or during disk I/O.
>Fix:
Implement azalia_mappage().  What is different about azalia(4) that makes this difficult?  I wouldn't mind if there were only one standard mmap sample rate.  It would be nice if the mmap-related ioctl()s (buffer position, etc) were available, though.

Thank you for your attention to this, it is appreciated.  Not a high priority, but IMHO it is important.