Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 3 Apr 2024 13:52:07 +0200
From:      Baptiste Daroussin <bapt@freebsd.org>
To:        Christos Margiolis <christos@freebsd.org>
Cc:        freebsd-multimedia@freebsd.org, markj@freebsd.org, jrm@freebsd.org
Subject:   Re: [Development report #9] Audio Stack Improvements
Message-ID:  <ebphs24lhctworbimbjgp65zoj2zic5bifb35qdwzijjd3soqg@rdnfqhovtky5>
In-Reply-To: <m5s6i3cehhmvcouxn5z7roh5sqtkhcqmme6epx76gjkgi4ur4g@qu6n2ugz72fh>
References:  <khn4vxkpij4iuhty3pvwpvn7w2b5s23eowipayvjvlnvd5ui7q@v26f6mzmd2ia> <m5s6i3cehhmvcouxn5z7roh5sqtkhcqmme6epx76gjkgi4ur4g@qu6n2ugz72fh>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wed 03 Apr 13:31, Baptiste Daroussin wrote:
> 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

Self replying to continue the list of issues:
- microphone is not working anymore, while it is recognized
cat /dev/sndstat
Installed devices:
pcm0: <Intel Tiger Lake (HDMI/DP 8ch)> (play)
pcm1: <C-Media Electronics Inc. USB Advanced Audio Device> (play/rec) default


dmesg | grep uaudio
uaudio0 on uhub1
uaudio0: <C-Media Electronics Inc. USB Advanced Audio Device, class 0/0, rev 2.00/4.04, addr 2> on usbus1
uaudio0: Play[0]: 96000 Hz, 2 ch, 24-bit S-LE PCM format, 2x4ms buffer.  (selected)
uaudio0: Play[0]: 48000 Hz, 2 ch, 24-bit S-LE PCM format, 2x4ms buffer.
uaudio0: Play[0]: 44100 Hz, 2 ch, 24-bit S-LE PCM format, 2x4ms buffer.
uaudio0: Record[0]: 48000 Hz, 1 ch, 16-bit S-LE PCM format, 2x4ms buffer.  (selected)
uaudio0: Record[0]: 44100 Hz, 1 ch, 16-bit S-LE PCM format, 2x4ms buffer.
uaudio0: No MIDI sequencer.
pcm1 on uaudio0
uaudio0: HID volume keys found.

I tested with rec (sox program) with firefox configured to use OSS.

Last bug report is the following: suspend to s3 is broken when some music is
being played.

Before your changes there was a end less loop of pcm_unregister waiting on pid
so technically it was already broken.

After your changes, I can see the firefox tab playing something being killed,
and the pcm_unregister is not complaining anymore.
I can see the screen being switched to vt but then nothing is printing on the
screen, but I can here the fan starting spinning like crazy :(

If I don't play music, suspend/resume works properly

Best regards,
Bapt




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?ebphs24lhctworbimbjgp65zoj2zic5bifb35qdwzijjd3soqg>