Re: [Development report #9] Audio Stack Improvements

From: Rainer Hurling <rhurlin_at_gwdg.de>
Date: Thu, 04 Apr 2024 17:13:33 UTC
Am 03.04.24 um 13:31 schrieb Baptiste Daroussin:
> 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
> 

I also have the problem that since the commits for this project on two 
CURRENT boxes sound output via PulseAudio is no longer possible.

"pactl info" reports that no connection to the server is possible.

PulseAudio gives the following messages on the console:

[00002b8cf70615060] vlcpuls audio output error: PulseAudio server 
connection failure: connection denied
[00002b8cf70615060] main audio output error: no suitable audio output module
[00002b8cf70615060] main decoder error: failed to create audio output

The patch of the PCM_WAIT() macro suggested by bapt does not bring any 
improvement on my computers.

In addition, I have the problem that the affected boxes are either 
extremely slow during shutdown or cannot complete the shutdown.

Thanks for your work on the audio system, very appreciated. Please let 
me know, if I should test something.

Best wishes,
Rainer