Re: [Development report #9] Audio Stack Improvements

From: Baptiste Daroussin <bapt_at_freebsd.org>
Date: Wed, 03 Apr 2024 11:31:54 UTC
On Tue 02 Apr 16:14, Christos Margiolis wrote:
> Committed DEVFS_CDEVPRIV(9) patch:
> - https://cgit.freebsd.org/src/commit/?id=dc831e93bad63f9faea09f1806a7733a40bff316
> - Updated the SNDCTL_AUDIOINFO ioctl to write /dev/dspX instead of
>   /dev/dspX.Y to ai->devnode.
> - Closed https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=246208 as
>   accessing specific channels through device nodes is no longer
>   possible.
> 
> Committed asynchronous audio device detach patch:
> - https://cgit.freebsd.org/src/commit/?id=9eff58c6d52b66eb8abe7f724dabcd804a566df4
> - Fixed a kern_poll() panic caught after applying the patch and
>   hot-unplugging the audio device while jackd is running:
>   https://cgit.freebsd.org/src/commit/?id=fba54d0179aabb3d94211ca80f94fe5b98ac6d3b
> - Will send call-for-testing and mail annoyed people once a snapshot
>   build with the patch included is built.
> - Debugging an LOR reported in D44411, although it’s not related to the
>   patch.
> 
> Updates to /dev/sndstat:
> - https://cgit.freebsd.org/src/commit/?id=6d1cee1640e1c360917e483ece5ec1bde423b788
> - https://reviews.freebsd.org/D44571
> - https://reviews.freebsd.org/D44546 (Abandoned since it will break
>   backwards compatibility and this functionality will be built into a
>   new userland tool anyway.)
> 
> Implementing missing OSSv4 ioctls:
> - https://reviews.freebsd.org/D44570
> 
> Minor patches:
> - https://cgit.freebsd.org/src/commit/?id=c136e6180e4762c1180d89cd2291fd9a935a721d
> - https://cgit.freebsd.org/src/commit/?id=b5e55dbf357472ffa39345b30b8b781e988a440f
> - https://cgit.freebsd.org/src/commit/?id=d46a6a77e8e14177d07e3a53f68b428e5d1cb416
> 
> Submitted a 2024Q1 report:
> https://cgit.freebsd.org/doc/commit/?id=df8f360e93a2fa210dc3a0a7aa4dae6e855a8076
> 
> This work is sponsored by the FreeBSD Foundation.

Thanks a log for your hard work! one thing I would like to report, I had an
issue with pulseaudio with latest kernel as of today.

On thing specific my laptop internal audio is actually uaudio which makes it
maybe a bit specific.

I have an application which queries pulseaudio every minute to get the status of
the mixer, this application starts pulseaudio if not present. It starts it a
first time, the process run but seems to hang somehow and becomes unkillable
(even via kill -9)

the backtraces shows: mi_switch+0xba _cv_wait+0xf8 getchns+0x9f
dsp_poll+0xc4 devfs_poll_f+0x7d kern_poll_kfds+0x3f6 kern_poll+0x9d
sys_ppoll+0x70 amd64_syscall+0x109 fast_syscall_common+0xf8

with a kernel from 10 days ago this wasn't happening.

if I change the PCM_WAIT() macro to use cv_wait_sig then everything seems to be
back to normal.

I don't know if that rings a bell or how to help you more on debugging this.

Best regards,
Bapt