tech-kern archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: Proposal: new audio framework
hello. How does the latency and overhead of the audio2 framework
compare with the latency and overhead of NetBSD-5? If you don't know the
answer, can you tell me how you did the tests so I can provide that
information? I use NetBSD-5 on a daily basis and it is critical that the
audio be as quick and efficient as it can be.
-thanks
-Brian
On Apr 1, 1:23pm, Tetsuya Isaki wrote:
} Subject: Proposal: new audio framework
} Hi all,
}
} I'd like to propose a new audio framework (which I call AUDIO2).
}
} http://www.netbsd.org/~isaki/audio2-20190401.diff.gz
}
} Audio driver since 8.0 has in-kernel mixing feature and it's really
} exciting. But also has so many problems.
} * unstable including locking issues.
} * bad playback quality and high load (especially on slow machines).
} * high latency.
} * does not support drivers with uncommon characteristics.
} For example, vs(4) hardware frequency is 15625Hz but audio.c can
} not attach such devices (as it is).
} * interface was silently changed so several hardware drivers have
} no longer worked.
} * There is a lot of unmaintained(no longer used) code.
}
} So I've reimplemented whole audio framework to fix them. It is mostly
} worked fine for me.
} * stable.
} * good playback quality and lightweight even on 68030.
} The average of system load ("sy" column by vmstat) on playing single
} 1ch/8000Hz mulaw on x68k (68030/30MHz/12MB real machine) is:
} about 50% on -current,
} about 10% on AUDIO2.
} (FYI, it's about 4% on NetBSD7.)
} * better latency.
} current latency is normally about 3*50=150msec in default,
} AUDIO2 latency is normally about 2*40=80msec in default.
} * smaller textsize (and probably memory usage).
} For example, amiga/GENERIC kernel has three old-style audio drivers and
} AUDIO2 modifies two of these already. At this moment it reduces kernel
} size about 35KB. In the end we will be able to reduce it more.
} * well support for non-PCM hardware.
} * well consideration about half duplex hardware.
} * provide many tests.
} * introduce sysctl hw.wsbellN.mute to be able to mute individually.
}
} AUDIO2 requires explicit few interface changes, so all hardware drivers
} must be catched up. Current status is:
} * works: arcofi(4), auich(4), bba(4), eap(4), hdafg(4), uaudio(4),
} vs(4), vsaudio(4)
} * compiled but not tested: audioamd(4), aucc(4), melody(4), repulse(4)
} * works but more works are required: sb(4), pad(4), spkr_audio
} Other drivers not listed here are not supported yet.
}
} There is one thing I'm worried about. AUDIO2 requires more strict
} blocksize and buffersize for hardware drivers. It will be a hard
} work if there are any hardware that does not satisfy the requirements.
} # Although I believe there are no such hardware...
}
} Some of TODOs:
} * remove all ifdef AUDIO2.
} It was needed to confirm non-AUDIO2 kernel build.
} * support all hardware drivers. (need your help!)
} * support NetBSD8-like multiuser mode?
} * mmap is not well tested.
} * translate or cleanup Japanese comments which is left in source code.
} * convert my local tests (which is not included in the patch) into ATF.
}
} Any comments?
} ---
} Tetsuya Isaki <isaki%pastel-flower.jp@localhost / isaki%NetBSD.org@localhost>
>-- End of excerpt from Tetsuya Isaki
Home |
Main Index |
Thread Index |
Old Index