[alsa-devel] [snd_hda_intel] snd_hda_intel causes high CPU lockup and system instability if mic disabled in BIOS on Lenovo P50
My Lenovo P50 laptop has a BIOS option to disable the microphone. When this option gets chosen, the snd_hda_intel driver causes high CPU load on a single kworker thread, spinning on "process_unsol_events", and system instability. This behavior occurs from the time that the snd_hda_intel module is loaded, irrespective of whether anything is attempting to access the mic. The sound output still works.
When in this state, the module cannot be removed cleanly; attempting to remove it (even without rmmod -f) triggers an oops.
I have attached two exemplary dmesg outputs. Strangely enough, the exact location of the oops varies, but further up the call chain, I always see process_unsol_events.
When the mic is not disabled in the BIOS, the module works stable, regardless whether or not the mic is muted in ALSA.
I wasn't able to pinpoint the root cause. Any pointers on where to start? Much appreciated.
Best regards Alexander
First dmesg:
[31592.691573] BUG: unable to handle kernel NULL pointer dereference at 000000000000020c [31592.691600] IP: mux_select+0x1d/0x190 [snd_hda_codec_generic] [31592.691601] PGD 0 P4D 0 [31592.691604] Oops: 0000 [#1] PREEMPT SMP [31592.691606] Modules linked in: snd_hda_codec_hdmi snd_hda_codec_realtek snd_hda_codec_generic snd_hda_intel(-) snd_hda_codec snd_hwdep snd_hda_core snd_pcm snd_timer zfs(PO) zunicode(PO) zlua(PO) nvidia_drm(PO) nvidia_modeset(PO) nvidia(PO) iwlmvm mac80211 qmi_wwan iwlwifi cfg80211 thinkpad_acpi rfkill zcommon(PO) znvpair(PO) zavl(PO) icp(PO) spl(O) sdhci_pci cqhci sdhci mmc_block rtsx_pci_sdmmc rtsx_pci mfd_core [31592.691639] CPU: 3 PID: 11044 Comm: kworker/3:1 Tainted: P O 4.16.0-rc7-00206-gf461da3-dirty #33 [31592.691640] Hardware name: LENOVO 20ENCTO1WW/20ENCTO1WW, BIOS N1EET62W (1.35 ) 11/10/2016 [31592.691643] Workqueue: events process_unsol_events [snd_hda_core] [31592.691647] RIP: 0010:mux_select+0x1d/0x190 [snd_hda_codec_generic] [31592.691648] RSP: 0018:ffffc9000f0dfe08 EFLAGS: 00010292 [31592.691650] RAX: 0000000000000001 RBX: ffff880e44737300 RCX: 00000000ffffffff [31592.691651] RDX: 0000000000000000 RSI: 0000000000000000 RDI: ffff880ee6368800 [31592.691652] RBP: 0000000000000000 R08: 0000000000000f09 R09: 0000000000000000 [31592.691653] R10: 0000000000000018 R11: 0000000000000003 R12: ffff880ee6368800 [31592.691655] R13: 0000000000000000 R14: ffff881053ce6100 R15: 0ffff881053ce610 [31592.691656] FS: 0000000000000000(0000) GS:ffff881053cc0000(0000) knlGS:0000000000000000 [31592.691658] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [31592.691659] CR2: 000000000000020c CR3: 000000000220a004 CR4: 00000000003606e0 [31592.691661] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 [31592.691662] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 [31592.691662] Call Trace: [31592.691668] ? snd_hda_jack_detect_state+0x4b/0x60 [snd_hda_codec] [31592.691672] call_jack_callback.isra.1+0x20/0xa0 [snd_hda_codec] [31592.691676] snd_hda_jack_unsol_event+0x62/0x70 [snd_hda_codec] [31592.691679] process_unsol_events+0x64/0x80 [snd_hda_core] [31592.691682] process_one_work+0x13e/0x380 [31592.691684] worker_thread+0x62/0x3e0 [31592.691686] ? rescuer_thread+0x2d0/0x2d0 [31592.691689] kthread+0x10d/0x140 [31592.691690] ? kthread_bind+0x10/0x10 [31592.691693] ret_from_fork+0x35/0x40 [31592.691695] Code: e2 01 e9 77 fb ff ff c3 66 0f 1f 44 00 00 0f 1f 44 00 00 41 57 41 56 41 55 41 54 49 89 fc 55 53 48 83 ec 08 48 8b af 08 04 00 00 <8b> 85 0c 02 00 00 85 c0 74 73 89 d3 41 89 f5 8d 50 ff 39 d8 89 [31592.691721] RIP: mux_select+0x1d/0x190 [snd_hda_codec_generic] RSP: ffffc9000f0dfe08 [31592.691723] CR2: 000000000000020c [31592.691725] ---[ end trace dee155e55b20eab8 ]---
Second dmesg:
[115121.084841] BUG: unable to handle kernel NULL pointer dereference at 00000000000005f8 [115121.084844] PGD 0 P4D 0 [115121.084847] Oops: 0000 [#1] PREEMPT SMP [115121.084850] CPU: 2 PID: 12228 Comm: kworker/2:1 Tainted: P O 4.18.0-rc2-00223-g1904148-dirty #39 [115121.084851] Hardware name: LENOVO 20ENCTO1WW/20ENCTO1WW, BIOS N1EET62W (1.35 ) 11/10/2016 [115121.084856] Workqueue: events process_unsol_events [snd_hda_core] [115121.084859] RIP: 0010:set_path_power+0x24/0x120 [snd_hda_codec_generic] [115121.084860] Code: 66 0f 1f 44 00 00 0f 1f 44 00 00 41 57 41 89 f7 41 56 41 55 41 54 55 48 89 fd 53 48 83 ec 08 4c 8b b7 08 04 00 00 89 54 24 04 <41> 8b be f8 05 00 00 49 8b b6 08 06 00 00 85 ff 0f 84 ce 00 00 00 [115121.084901] RSP: 0018:ffffc900243e3de8 EFLAGS: 00010296 [115121.084903] RAX: 0000000000000000 RBX: 0000000000000018 RCX: 00000000ffffffff [115121.084904] RDX: 0000000000000000 RSI: 0000000000000018 RDI: ffff880f993a2800 [115121.084906] RBP: ffff880f993a2800 R08: 0000000000000f09 R09: 0000000000000000 [115121.084907] R10: 0000000000000019 R11: 0000000000000000 R12: 0000000000000000 [115121.084908] R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000018 [115121.084910] FS: 0000000000000000(0000) GS:ffff881053c80000(0000) knlGS:0000000000000000 [115121.084911] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [115121.084912] CR2: 00000000000005f8 CR3: 000000000260a004 CR4: 00000000003606e0 [115121.084914] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 [115121.084915] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 [115121.084916] Call Trace: [115121.084922] pin_power_callback+0x4f/0x80 [snd_hda_codec_generic] [115121.084926] call_jack_callback.isra.1+0x20/0xa0 [snd_hda_codec] [115121.084930] snd_hda_jack_unsol_event+0x62/0x70 [snd_hda_codec] [115121.084933] process_unsol_events+0x64/0x80 [snd_hda_core] [115121.084937] process_one_work+0x157/0x390 [115121.084939] worker_thread+0x64/0x3e0 [115121.084942] ? rescuer_thread+0x2e0/0x2e0 [115121.084944] kthread+0x10d/0x140 [115121.084946] ? kthread_bind+0x10/0x10 [115121.084948] ret_from_fork+0x35/0x40 [115121.084951] Modules linked in: snd_hda_codec_hdmi snd_hda_codec_realtek snd_hda_codec_generic snd_hda_intel(-) snd_hda_codec snd_hwdep snd_hda_core snd_pcm snd_timer tun nvidia_modeset(PO) nvidia(PO) iwlmvm mac80211 iwlwifi btusb btrtl btbcm btintel bluetooth cfg80211 qmi_wwan ecdh_generic thinkpad_acpi rfkill sdhci_pci cqhci sdhci mmc_block rtsx_pci_sdmmc rtsx_pci mfd_core [115121.084969] CR2: 00000000000005f8 [115121.084971] ---[ end trace 010d684599325728 ]--- [115121.084975] RIP: 0010:set_path_power+0x24/0x120 [snd_hda_codec_generic] [115121.084976] Code: 66 0f 1f 44 00 00 0f 1f 44 00 00 41 57 41 89 f7 41 56 41 55 41 54 55 48 89 fd 53 48 83 ec 08 4c 8b b7 08 04 00 00 89 54 24 04 <41> 8b be f8 05 00 00 49 8b b6 08 06 00 00 85 ff 0f 84 ce 00 00 00 [115121.085000] RSP: 0018:ffffc900243e3de8 EFLAGS: 00010296 [115121.085001] RAX: 0000000000000000 RBX: 0000000000000018 RCX: 00000000ffffffff [115121.085002] RDX: 0000000000000000 RSI: 0000000000000018 RDI: ffff880f993a2800 [115121.085003] RBP: ffff880f993a2800 R08: 0000000000000f09 R09: 0000000000000000 [115121.085004] R10: 0000000000000019 R11: 0000000000000000 R12: 0000000000000000 [115121.085005] R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000018 [115121.085006] FS: 0000000000000000(0000) GS:ffff881053c80000(0000) knlGS:0000000000000000 [115121.085007] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [115121.085008] CR2: 00000000000005f8 CR3: 000000000260a004 CR4: 00000000003606e0 [115121.085009] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 [115121.085010] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
On Mon, 26 Nov 2018 00:17:15 +0100, Alexander Kappner wrote:
My Lenovo P50 laptop has a BIOS option to disable the microphone. When this option gets chosen, the snd_hda_intel driver causes high CPU load on a single kworker thread, spinning on "process_unsol_events", and system instability. This behavior occurs from the time that the snd_hda_intel module is loaded, irrespective of whether anything is attempting to access the mic. The sound output still works.
When in this state, the module cannot be removed cleanly; attempting to remove it (even without rmmod -f) triggers an oops.
I have attached two exemplary dmesg outputs. Strangely enough, the exact location of the oops varies, but further up the call chain, I always see process_unsol_events.
When the mic is not disabled in the BIOS, the module works stable, regardless whether or not the mic is muted in ALSA.
I wasn't able to pinpoint the root cause. Any pointers on where to start? Much appreciated.
Could you load snd-hda-intel driver with probe_only=1 option, and give alsa-info.sh output (run it with --no-upload option)? This should leave only the codec probing without configuring, so we can see the codec widget contents and check the emulator.
thanks,
Takashi
On Mon, 26 Nov 2018, Takashi Iwai wrote:
On Mon, 26 Nov 2018 00:17:15 +0100, Alexander Kappner wrote:
My Lenovo P50 laptop has a BIOS option to disable the microphone. When this option gets chosen, the snd_hda_intel driver causes high CPU load on a single kworker thread, spinning on "process_unsol_events", and system instability. This behavior occurs from the time that the snd_hda_intel module is loaded, irrespective of whether anything is attempting to access the mic. The sound output still works.
When in this state, the module cannot be removed cleanly; attempting to remove it (even without rmmod -f) triggers an oops.
I have attached two exemplary dmesg outputs. Strangely enough, the exact location of the oops varies, but further up the call chain, I always see process_unsol_events.
When the mic is not disabled in the BIOS, the module works stable, regardless whether or not the mic is muted in ALSA.
I wasn't able to pinpoint the root cause. Any pointers on where to start? Much appreciated.
Could you load snd-hda-intel driver with probe_only=1 option, and give alsa-info.sh output (run it with --no-upload option)? This should leave only the codec probing without configuring, so we can see the codec widget contents and check the emulator.
thanks,
Takashi
Hi Takashi,
thank you for looking into this. Please see quoted below the output of alsa-info.sh (after "modprobe snd_hda_intel probe_only=1").
Best regards
upload=true&script=true&cardinfo= !!################################ !!ALSA Information Script v 0.4.64 !!################################
!!Script ran on: Tue Nov 27 05:25:14 UTC 2018
!!Linux Distribution !!------------------
Debian GNU/Linux 8 \n \l PRETTY_NAME="Debian GNU/Linux 8 (jessie)" NAME="Debian GNU/Linux" ID=debian HOME_URL="http://www.debian.org/" SUPPORT_URL="http://www.debian.org/support" BUG_REPORT_URL="https://bugs.debian.org/"
!!DMI Information !!---------------
Manufacturer: LENOVO Product Name: 20ENCTO1WW Product Version: ThinkPad P50 Firmware Version: N1EET62W (1.35 ) Board Vendor: LENOVO Board Name: 20ENCTO1WW
!!ACPI Device Status Information !!---------------
/sys/bus/acpi/devices/ACPI0003:00/status 15 /sys/bus/acpi/devices/LEN0068:00/status 15 /sys/bus/acpi/devices/LNXPOWER:00/status 1 /sys/bus/acpi/devices/LNXPOWER:01/status 1 /sys/bus/acpi/devices/LNXPOWER:02/status 1 /sys/bus/acpi/devices/LNXPOWER:03/status 1 /sys/bus/acpi/devices/LNXVIDEO:00/status 15 /sys/bus/acpi/devices/PNP0103:00/status 15 /sys/bus/acpi/devices/PNP0C0A:00/status 31 /sys/bus/acpi/devices/PNP0C0F:00/status 9 /sys/bus/acpi/devices/PNP0C0F:01/status 9 /sys/bus/acpi/devices/PNP0C0F:02/status 9 /sys/bus/acpi/devices/PNP0C0F:03/status 9 /sys/bus/acpi/devices/PNP0C0F:04/status 9 /sys/bus/acpi/devices/PNP0C0F:05/status 9 /sys/bus/acpi/devices/PNP0C0F:06/status 9 /sys/bus/acpi/devices/PNP0C0F:07/status 9 /sys/bus/acpi/devices/device:3e/status 15
!!Kernel Information !!------------------
Kernel release: 4.19.0-rc4 Operating System: GNU/Linux Architecture: x86_64 Processor: unknown SMP Enabled: Yes
!!ALSA Version !!------------
Driver version: k4.19.0-rc4 Library version: 1.0.28 Utilities version: 1.0.28
!!Loaded ALSA modules !!-------------------
!!Sound Servers on this system !!----------------------------
Pulseaudio: Installed - Yes (/usr/bin/pulseaudio) Running - No
!!Soundcards recognised by ALSA !!-----------------------------
0 [PCH ]: HDA-Intel - HDA Intel PCH HDA Intel PCH at 0xc4940000 irq 151 1 [NVidia ]: HDA-Intel - HDA NVidia HDA NVidia at 0xc3000000 irq 17
!!PCI Soundcards installed in the system !!--------------------------------------
00:1f.3 Audio device: Intel Corporation Device a170 (rev 31) 01:00.1 Audio device: NVIDIA Corporation Device 0fbc (rev a1)
!!Advanced information - PCI Vendor/Device/Subsystem ID's !!-------------------------------------------------------
00:1f.3 0403: 8086:a170 (rev 31) Subsystem: 17aa:222e -- 01:00.1 0403: 10de:0fbc (rev a1) Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
!!Modprobe options (Sound related) !!--------------------------------
snd_pcsp: index=-2 snd_usb_audio: index=-2 snd_atiixp_modem: index=-2 snd_intel8x0m: index=-2 snd_via82xx_modem: index=-2
!!Loaded sound module options !!---------------------------
!!HDA-Intel Codec information !!--------------------------- --startcollapse--
Codec: Realtek ID 298 Address: 0 AFG Function Id: 0x1 (unsol 1) Vendor Id: 0x10ec0298 Subsystem Id: 0x17aa222e Revision Id: 0x100103 No Modem Function Group found Default PCM: rates [0x60]: 44100 48000 bits [0xe]: 16 20 24 formats [0x1]: PCM Default Amp-In caps: N/A Default Amp-Out caps: N/A State of AFG node 0x01: Power states: D0 D1 D2 D3 D3cold CLKSTOP EPSS Power: setting=D0, actual=D0 GPIO: io=8, o=0, i=0, unsolicited=1, wake=0 IO[0]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0 IO[1]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0 IO[2]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0 IO[3]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0 IO[4]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0 IO[5]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0 IO[6]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0 IO[7]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0 Node 0x02 [Audio Output] wcaps 0x41d: Stereo Amp-Out Amp-Out caps: ofs=0x7f, nsteps=0x7f, stepsize=0x01, mute=0 Amp-Out vals: [0x7f 0x7f] Converter: stream=0, channel=0 PCM: rates [0x60]: 44100 48000 bits [0xe]: 16 20 24 formats [0x1]: PCM Power states: D0 D1 D2 D3 EPSS Power: setting=D0, actual=D0 Node 0x03 [Audio Output] wcaps 0x41d: Stereo Amp-Out Amp-Out caps: ofs=0x7f, nsteps=0x7f, stepsize=0x01, mute=0 Amp-Out vals: [0x7f 0x7f] Converter: stream=0, channel=0 PCM: rates [0x60]: 44100 48000 bits [0xe]: 16 20 24 formats [0x1]: PCM Power states: D0 D1 D2 D3 EPSS Power: setting=D0, actual=D0 Node 0x04 [Vendor Defined Widget] wcaps 0xf00000: Mono Node 0x05 [Vendor Defined Widget] wcaps 0xf00000: Mono Node 0x06 [Audio Output] wcaps 0x411: Stereo Converter: stream=0, channel=0 PCM: rates [0x40]: 48000 bits [0xe]: 16 20 24 formats [0x1]: PCM Power states: D0 D1 D2 D3 EPSS Power: setting=D0, actual=D0 Node 0x07 [Vendor Defined Widget] wcaps 0xf00000: Mono Node 0x08 [Audio Input] wcaps 0x10051b: Stereo Amp-In Amp-In caps: ofs=0x43, nsteps=0x7f, stepsize=0x01, mute=1 Amp-In vals: [0xc3 0xc3] Converter: stream=0, channel=0 SDI-Select: 0 PCM: rates [0x60]: 44100 48000 bits [0xe]: 16 20 24 formats [0x1]: PCM Power states: D0 D1 D2 D3 EPSS Power: setting=D0, actual=D0 Connection: 1 0x23 Node 0x09 [Audio Input] wcaps 0x10051b: Stereo Amp-In Amp-In caps: ofs=0x43, nsteps=0x7f, stepsize=0x01, mute=1 Amp-In vals: [0xc3 0xc3] Converter: stream=0, channel=0 SDI-Select: 0 PCM: rates [0x60]: 44100 48000 bits [0xe]: 16 20 24 formats [0x1]: PCM Power states: D0 D1 D2 D3 EPSS Power: setting=D0, actual=D0 Connection: 1 0x22 Node 0x0a [Audio Input] wcaps 0x100511: Stereo Converter: stream=0, channel=0 SDI-Select: 0 PCM: rates [0x40]: 48000 bits [0xe]: 16 20 24 formats [0x1]: PCM Power states: D0 D1 D2 D3 EPSS Power: setting=D0, actual=D0 Connection: 1 0x25 Node 0x0b [Audio Mixer] wcaps 0x20010b: Stereo Amp-In Amp-In caps: ofs=0x17, nsteps=0x1f, stepsize=0x05, mute=1 Amp-In vals: [0x97 0x97] [0x97 0x97] [0x97 0x97] [0x09 0x09] Connection: 4 0x18 0x19 0x1a 0x1d Node 0x0c [Audio Mixer] wcaps 0x20010b: Stereo Amp-In Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-In vals: [0x00 0x00] [0x80 0x80] Connection: 2 0x02 0x0b Node 0x0d [Audio Mixer] wcaps 0x20010b: Stereo Amp-In Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-In vals: [0x00 0x00] Connection: 1 0x03 Node 0x0e [Vendor Defined Widget] wcaps 0xf00000: Mono Node 0x0f [Vendor Defined Widget] wcaps 0xf00000: Mono Node 0x10 [Vendor Defined Widget] wcaps 0xf00000: Mono Node 0x11 [Audio Input] wcaps 0x10051b: Stereo Amp-In Amp-In caps: ofs=0x43, nsteps=0x7f, stepsize=0x01, mute=1 Amp-In vals: [0xc3 0xc3] Converter: stream=0, channel=0 SDI-Select: 0 PCM: rates [0x60]: 44100 48000 bits [0xe]: 16 20 24 formats [0x1]: PCM Power states: D0 D1 D2 D3 EPSS Power: setting=D0, actual=D0 Connection: 1 0x24 Node 0x12 [Pin Complex] wcaps 0x40040b: Stereo Amp-In Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0 Amp-In vals: [0x00 0x00] Pincap 0x00000020: IN Pin Default 0x90a60140: [Fixed] Mic at Int N/A Conn = Digital, Color = Unknown DefAssociation = 0x4, Sequence = 0x0 Misc = NO_PRESENCE Pin-ctls: 0x00: Power states: D0 D1 D2 D3 EPSS Power: setting=D0, actual=D0 Node 0x13 [Pin Complex] wcaps 0x40040b: Stereo Amp-In Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0 Amp-In vals: [0x00 0x00] Pincap 0x00000020: IN Pin Default 0x40000000: [N/A] Line Out at Ext N/A Conn = Unknown, Color = Unknown DefAssociation = 0x0, Sequence = 0x0 Pin-ctls: 0x00: Power states: D0 D1 D2 D3 EPSS Power: setting=D0, actual=D0 Node 0x14 [Pin Complex] wcaps 0x40050d: Stereo Amp-Out Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-Out vals: [0x80 0x80] Pincap 0x00010010: OUT EAPD EAPD 0x0: Pin Default 0x90170110: [Fixed] Speaker at Int N/A Conn = Analog, Color = Unknown DefAssociation = 0x1, Sequence = 0x0 Misc = NO_PRESENCE Pin-ctls: 0x40: OUT Power states: D0 D1 D2 D3 EPSS Power: setting=D0, actual=D0 Connection: 2 0x0c* 0x0d Node 0x15 [Vendor Defined Widget] wcaps 0xf00000: Mono Node 0x16 [Vendor Defined Widget] wcaps 0xf00000: Mono Node 0x17 [Pin Complex] wcaps 0x40058d: Stereo Amp-Out Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-Out vals: [0x80 0x80] Pincap 0x0001001c: OUT HP EAPD Detect EAPD 0x0: Pin Default 0x411111f0: [N/A] Speaker at Ext Rear Conn = 1/8, Color = Black DefAssociation = 0xf, Sequence = 0x0 Misc = NO_PRESENCE Pin-ctls: 0x00: Unsolicited: tag=00, enabled=0 Power states: D0 D1 D2 D3 EPSS Power: setting=D0, actual=D0 Connection: 3 0x0c* 0x0d 0x06 Node 0x18 [Pin Complex] wcaps 0x40048b: Stereo Amp-In Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0 Amp-In vals: [0x00 0x00] Pincap 0x00003724: IN Detect Vref caps: HIZ 50 GRD 80 100 Pin Default 0x03a11030: [Jack] Mic at Ext Left Conn = 1/8, Color = Black DefAssociation = 0x3, Sequence = 0x0 Pin-ctls: 0x20: IN VREF_HIZ Unsolicited: tag=00, enabled=0 Power states: D0 D1 D2 D3 EPSS Power: setting=D0, actual=D0 Node 0x19 [Pin Complex] wcaps 0x40048b: Stereo Amp-In Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0 Amp-In vals: [0x00 0x00] Pincap 0x00003724: IN Detect Vref caps: HIZ 50 GRD 80 100 Pin Default 0x411111f0: [N/A] Speaker at Ext Rear Conn = 1/8, Color = Black DefAssociation = 0xf, Sequence = 0x0 Misc = NO_PRESENCE Pin-ctls: 0x00: VREF_HIZ Unsolicited: tag=00, enabled=0 Power states: D0 D1 D2 D3 EPSS Power: setting=D0, actual=D0 Node 0x1a [Pin Complex] wcaps 0x40058f: Stereo Amp-In Amp-Out Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0 Amp-In vals: [0x00 0x00] Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-Out vals: [0x80 0x80] Pincap 0x0001373c: IN OUT HP EAPD Detect Vref caps: HIZ 50 GRD 80 100 EAPD 0x0: Pin Default 0x411111f0: [N/A] Speaker at Ext Rear Conn = 1/8, Color = Black DefAssociation = 0xf, Sequence = 0x0 Misc = NO_PRESENCE Pin-ctls: 0x00: VREF_HIZ Unsolicited: tag=00, enabled=0 Power states: D0 D1 D2 D3 EPSS Power: setting=D0, actual=D0 Connection: 2 0x0c* 0x0d Node 0x1b [Vendor Defined Widget] wcaps 0xf00000: Mono Node 0x1c [Vendor Defined Widget] wcaps 0xf00000: Mono Node 0x1d [Pin Complex] wcaps 0x400400: Mono Pincap 0x00000020: IN Pin Default 0x40648605: [N/A] Modem Line at Ext N/A Conn = RCA, Color = Purple DefAssociation = 0x0, Sequence = 0x5 Pin-ctls: 0x20: IN Power states: D0 D1 D2 D3 EPSS Power: setting=D0, actual=D0 Node 0x1e [Pin Complex] wcaps 0x400501: Stereo Pincap 0x00000014: OUT Detect Pin Default 0x411111f0: [N/A] Speaker at Ext Rear Conn = 1/8, Color = Black DefAssociation = 0xf, Sequence = 0x0 Misc = NO_PRESENCE Pin-ctls: 0x00: Power states: D0 D1 D2 D3 EPSS Power: setting=D0, actual=D0 Connection: 1 0x06 Node 0x1f [Pin Complex] wcaps 0x400401: Stereo Pincap 0x00000024: IN Detect Pin Default 0x411111f0: [N/A] Speaker at Ext Rear Conn = 1/8, Color = Black DefAssociation = 0xf, Sequence = 0x0 Misc = NO_PRESENCE Pin-ctls: 0x00: Power states: D0 D1 D2 D3 EPSS Power: setting=D0, actual=D0 Node 0x20 [Vendor Defined Widget] wcaps 0xf00040: Mono Processing caps: benign=0, ncoeff=150 Node 0x21 [Pin Complex] wcaps 0x40058d: Stereo Amp-Out Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-Out vals: [0x00 0x00] Pincap 0x0000001c: OUT HP Detect Pin Default 0x03211020: [Jack] HP Out at Ext Left Conn = 1/8, Color = Black DefAssociation = 0x2, Sequence = 0x0 Pin-ctls: 0x00: Unsolicited: tag=00, enabled=0 Power states: D0 D1 D2 D3 EPSS Power: setting=D0, actual=D0 Connection: 2 0x0c* 0x0d Node 0x22 [Audio Selector] wcaps 0x300101: Stereo Connection: 6 0x18* 0x19 0x1a 0x1d 0x0b 0x12 Node 0x23 [Audio Selector] wcaps 0x300101: Stereo Connection: 6 0x18 0x19 0x1a* 0x1d 0x0b 0x13 Node 0x24 [Audio Selector] wcaps 0x300101: Stereo Connection: 2 0x12* 0x13 Node 0x25 [Audio Selector] wcaps 0x300101: Stereo Connection: 1 0x1f Codec: Nvidia GPU 60 HDMI/DP Address: 0 AFG Function Id: 0x1 (unsol 0) Vendor Id: 0x10de0060 Subsystem Id: 0x00000000 Revision Id: 0x100100 No Modem Function Group found Default PCM: rates [0x0]: bits [0x0]: formats [0x0]: Default Amp-In caps: N/A Default Amp-Out caps: N/A State of AFG node 0x01: Power states: D0 D1 D2 D3 CLKSTOP EPSS Power: setting=D0, actual=D0 GPIO: io=0, o=0, i=0, unsolicited=0, wake=0 Node 0x04 [Pin Complex] wcaps 0x407381: 8-Channels Digital CP Control: name="IEC958 Playback Con Mask", index=0, device=0 Control: name="IEC958 Playback Pro Mask", index=0, device=0 Control: name="IEC958 Playback Default", index=0, device=0 Control: name="IEC958 Playback Switch", index=0, device=0 Pincap 0x09000094: OUT Detect HBR HDMI DP Pin Default 0x185600f0: [Jack] Digital Out at Int HDMI Conn = Digital, Color = Unknown DefAssociation = 0xf, Sequence = 0x0 Pin-ctls: 0x00: Unsolicited: tag=01, enabled=1 Connection: 4 0x08* 0x09 0x0a 0x0b Node 0x05 [Pin Complex] wcaps 0x407381: 8-Channels Digital CP Control: name="IEC958 Playback Con Mask", index=1, device=0 Control: name="IEC958 Playback Pro Mask", index=1, device=0 Control: name="IEC958 Playback Default", index=1, device=0 Control: name="IEC958 Playback Switch", index=1, device=0 Pincap 0x09000094: OUT Detect HBR HDMI DP Pin Default 0x185600f0: [Jack] Digital Out at Int HDMI Conn = Digital, Color = Unknown DefAssociation = 0xf, Sequence = 0x0 Pin-ctls: 0x00: Unsolicited: tag=02, enabled=1 Connection: 4 0x08* 0x09 0x0a 0x0b Node 0x06 [Pin Complex] wcaps 0x407381: 8-Channels Digital CP Pincap 0x09000094: OUT Detect HBR HDMI DP Pin Default 0x585600f0: [N/A] Digital Out at Int HDMI Conn = Digital, Color = Unknown DefAssociation = 0xf, Sequence = 0x0 Pin-ctls: 0x00: Unsolicited: tag=00, enabled=0 Connection: 4 0x08* 0x09 0x0a 0x0b Node 0x07 [Pin Complex] wcaps 0x407381: 8-Channels Digital CP Control: name="IEC958 Playback Con Mask", index=2, device=0 Control: name="IEC958 Playback Pro Mask", index=2, device=0 Control: name="IEC958 Playback Default", index=2, device=0 Control: name="IEC958 Playback Switch", index=2, device=0 Pincap 0x09000094: OUT Detect HBR HDMI DP Pin Default 0x185600f0: [Jack] Digital Out at Int HDMI Conn = Digital, Color = Unknown DefAssociation = 0xf, Sequence = 0x0 Pin-ctls: 0x00: Unsolicited: tag=03, enabled=1 Connection: 4 0x08* 0x09 0x0a 0x0b Node 0x08 [Audio Output] wcaps 0x62b1: 8-Channels Digital Stripe Converter: stream=0, channel=0 Digital: Digital category: 0x0 IEC Coding Type: 0x0 PCM: rates [0x7f0]: 32000 44100 48000 88200 96000 176400 192000 bits [0xe]: 16 20 24 formats [0x5]: PCM AC3 Unsolicited: tag=00, enabled=0 Node 0x09 [Audio Output] wcaps 0x62b1: 8-Channels Digital Stripe Converter: stream=0, channel=0 Digital: Digital category: 0x0 IEC Coding Type: 0x0 PCM: rates [0x7f0]: 32000 44100 48000 88200 96000 176400 192000 bits [0xe]: 16 20 24 formats [0x5]: PCM AC3 Unsolicited: tag=00, enabled=0 Node 0x0a [Audio Output] wcaps 0x62b1: 8-Channels Digital Stripe Converter: stream=0, channel=0 Digital: Digital category: 0x0 IEC Coding Type: 0x0 PCM: rates [0x7f0]: 32000 44100 48000 88200 96000 176400 192000 bits [0xe]: 16 20 24 formats [0x5]: PCM AC3 Unsolicited: tag=00, enabled=0 Node 0x0b [Audio Output] wcaps 0x62b1: 8-Channels Digital Stripe Converter: stream=0, channel=0 Digital: Digital category: 0x0 IEC Coding Type: 0x0 PCM: rates [0x7f0]: 32000 44100 48000 88200 96000 176400 192000 bits [0xe]: 16 20 24 formats [0x5]: PCM AC3 Unsolicited: tag=00, enabled=0 --endcollapse--
!!ALSA Device nodes !!-----------------
crw-rw----+ 1 root audio 116, 3 Nov 26 21:24 /dev/snd/controlC0 crw-rw----+ 1 root audio 116, 8 Nov 26 21:24 /dev/snd/controlC1 crw-rw----+ 1 root audio 116, 2 Nov 26 21:24 /dev/snd/hwC0D0 crw-rw----+ 1 root audio 116, 7 Nov 26 21:24 /dev/snd/hwC1D0 crw-rw----+ 1 root audio 116, 4 Nov 26 21:24 /dev/snd/pcmC1D3p crw-rw----+ 1 root audio 116, 5 Nov 26 21:24 /dev/snd/pcmC1D7p crw-rw----+ 1 root audio 116, 6 Nov 26 21:24 /dev/snd/pcmC1D8p crw-rw----+ 1 root audio 116, 33 Nov 26 21:24 /dev/snd/timer
/dev/snd/by-path: total 0 drwxr-xr-x 2 root root 80 Nov 26 21:24 . drwxr-xr-x 3 root root 220 Nov 26 21:24 .. lrwxrwxrwx 1 root root 12 Nov 26 21:24 pci-0000:00:1f.3 -> ../controlC0 lrwxrwxrwx 1 root root 12 Nov 26 21:24 pci-0000:01:00.1 -> ../controlC1
!!Aplay/Arecord output !!--------------------
APLAY
No protocol specified xcb_connection_has_error() returned true XDG_RUNTIME_DIR (/run/user/1000) is not owned by us (uid 0), but by uid 1000! (This could e g happen if you try to connect to a non-root PulseAudio as a root user, over the native protocol. Don't do that.) **** List of PLAYBACK Hardware Devices **** card 1: NVidia [HDA NVidia], device 3: HDMI 0 [HDMI 0] Subdevices: 1/1 Subdevice #0: subdevice #0 card 1: NVidia [HDA NVidia], device 7: HDMI 1 [HDMI 1] Subdevices: 1/1 Subdevice #0: subdevice #0 card 1: NVidia [HDA NVidia], device 8: HDMI 2 [HDMI 2] Subdevices: 1/1 Subdevice #0: subdevice #0
ARECORD
No protocol specified xcb_connection_has_error() returned true XDG_RUNTIME_DIR (/run/user/1000) is not owned by us (uid 0), but by uid 1000! (This could e g happen if you try to connect to a non-root PulseAudio as a root user, over the native protocol. Don't do that.) **** List of CAPTURE Hardware Devices ****
!!Amixer output !!-------------
!!-------Mixer controls for card 0 [PCH]
No protocol specified xcb_connection_has_error() returned true XDG_RUNTIME_DIR (/run/user/1000) is not owned by us (uid 0), but by uid 1000! (This could e g happen if you try to connect to a non-root PulseAudio as a root user, over the native protocol. Don't do that.) Card hw:0 'PCH'/'HDA Intel PCH at 0xc4940000 irq 151' Mixer name : '' Components : 'HDA:10ec0298,17aa222e,00100103' Controls : 2 Simple ctrls : 2 No protocol specified xcb_connection_has_error() returned true XDG_RUNTIME_DIR (/run/user/1000) is not owned by us (uid 0), but by uid 1000! (This could e g happen if you try to connect to a non-root PulseAudio as a root user, over the native protocol. Don't do that.) Simple mixer control 'PCM',0 Capabilities: pvolume Playback channels: Front Left - Front Right Limits: Playback 0 - 255 Mono: Front Left: Playback 255 [100%] [0.00dB] Front Right: Playback 255 [100%] [0.00dB] Simple mixer control 'Digital',0 Capabilities: cvolume Capture channels: Front Left - Front Right Limits: Capture 0 - 120 Front Left: Capture 120 [100%] [30.00dB] Front Right: Capture 120 [100%] [30.00dB]
!!-------Mixer controls for card 1 [NVidia]
No protocol specified xcb_connection_has_error() returned true XDG_RUNTIME_DIR (/run/user/1000) is not owned by us (uid 0), but by uid 1000! (This could e g happen if you try to connect to a non-root PulseAudio as a root user, over the native protocol. Don't do that.) Card hw:1 'NVidia'/'HDA NVidia at 0xc3000000 irq 17' Mixer name : 'Nvidia GPU 60 HDMI/DP' Components : 'HDA:10de0060,00000000,00100100' Controls : 21 Simple ctrls : 3 No protocol specified xcb_connection_has_error() returned true XDG_RUNTIME_DIR (/run/user/1000) is not owned by us (uid 0), but by uid 1000! (This could e g happen if you try to connect to a non-root PulseAudio as a root user, over the native protocol. Don't do that.) Simple mixer control 'IEC958',0 Capabilities: pswitch pswitch-joined Playback channels: Mono Mono: Playback [on] Simple mixer control 'IEC958',1 Capabilities: pswitch pswitch-joined Playback channels: Mono Mono: Playback [on] Simple mixer control 'IEC958',2 Capabilities: pswitch pswitch-joined Playback channels: Mono Mono: Playback [on]
!!Alsactl output !!--------------
--startcollapse-- state.PCH { control.1 { iface MIXER name 'PCM Playback Volume' value.0 255 value.1 255 comment { access 'read write user' type INTEGER count 2 range '0 - 255' tlv '0000000100000008ffffec1400000014' dbmin -5100 dbmax 0 dbvalue.0 0 dbvalue.1 0 } } control.2 { iface MIXER name 'Digital Capture Volume' value.0 120 value.1 120 comment { access 'read write user' type INTEGER count 2 range '0 - 120' tlv '0000000100000008fffff44800000032' dbmin -3000 dbmax 3000 dbvalue.0 3000 dbvalue.1 3000 } } } state.NVidia { control.1 { iface CARD name 'HDMI/DP,pcm=3 Jack' value false comment { access read type BOOLEAN count 1 } } control.2 { iface MIXER name 'IEC958 Playback Con Mask' value '0fff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' comment { access read type IEC958 count 1 } } control.3 { iface MIXER name 'IEC958 Playback Pro Mask' value '0f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' comment { access read type IEC958 count 1 } } control.4 { iface MIXER name 'IEC958 Playback Default' value '0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' comment { access 'read write' type IEC958 count 1 } } control.5 { iface MIXER name 'IEC958 Playback Switch' value true comment { access 'read write' type BOOLEAN count 1 } } control.6 { iface PCM device 3 name ELD value '' comment { access 'read volatile' type BYTES count 0 } } control.7 { iface CARD name 'HDMI/DP,pcm=7 Jack' value false comment { access read type BOOLEAN count 1 } } control.8 { iface MIXER name 'IEC958 Playback Con Mask' index 1 value '0fff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' comment { access read type IEC958 count 1 } } control.9 { iface MIXER name 'IEC958 Playback Pro Mask' index 1 value '0f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' comment { access read type IEC958 count 1 } } control.10 { iface MIXER name 'IEC958 Playback Default' index 1 value '0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' comment { access 'read write' type IEC958 count 1 } } control.11 { iface MIXER name 'IEC958 Playback Switch' index 1 value true comment { access 'read write' type BOOLEAN count 1 } } control.12 { iface PCM device 7 name ELD value '' comment { access 'read volatile' type BYTES count 0 } } control.13 { iface CARD name 'HDMI/DP,pcm=8 Jack' value false comment { access read type BOOLEAN count 1 } } control.14 { iface MIXER name 'IEC958 Playback Con Mask' index 2 value '0fff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' comment { access read type IEC958 count 1 } } control.15 { iface MIXER name 'IEC958 Playback Pro Mask' index 2 value '0f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' comment { access read type IEC958 count 1 } } control.16 { iface MIXER name 'IEC958 Playback Default' index 2 value '0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' comment { access 'read write' type IEC958 count 1 } } control.17 { iface MIXER name 'IEC958 Playback Switch' index 2 value true comment { access 'read write' type BOOLEAN count 1 } } control.18 { iface PCM device 8 name ELD value '' comment { access 'read volatile' type BYTES count 0 } } control.19 { iface PCM device 3 name 'Playback Channel Map' value.0 0 value.1 0 value.2 0 value.3 0 value.4 0 value.5 0 value.6 0 value.7 0 comment { access 'read write' type INTEGER count 8 range '0 - 36' } } control.20 { iface PCM device 7 name 'Playback Channel Map' value.0 0 value.1 0 value.2 0 value.3 0 value.4 0 value.5 0 value.6 0 value.7 0 comment { access 'read write' type INTEGER count 8 range '0 - 36' } } control.21 { iface PCM device 8 name 'Playback Channel Map' value.0 0 value.1 0 value.2 0 value.3 0 value.4 0 value.5 0 value.6 0 value.7 0 comment { access 'read write' type INTEGER count 8 range '0 - 36' } } } --endcollapse--
!!All Loaded Modules !!------------------
Module snd_hda_codec_hdmi snd_hda_intel snd_hda_codec snd_hwdep snd_hda_core snd_pcm snd_timer nvidia_modeset zfs zunicode zlua nvidia iwlmvm mac80211 btusb btrtl btbcm btintel iwlwifi bluetooth qmi_wwan cfg80211 ecdh_generic thinkpad_acpi rfkill zcommon znvpair zavl icp spl sdhci_pci cqhci sdhci mmc_block rtsx_pci_sdmmc rtsx_pci mfd_core
!!Sysfs Files !!-----------
/sys/class/sound/hwC0D0/init_pin_configs: 0x12 0x90a60140 0x13 0x40000000 0x14 0x90170110 0x17 0x411111f0 0x18 0x03a11030 0x19 0x411111f0 0x1a 0x411111f0 0x1d 0x40648605 0x1e 0x411111f0 0x1f 0x411111f0 0x21 0x03211020
/sys/class/sound/hwC0D0/driver_pin_configs:
/sys/class/sound/hwC0D0/user_pin_configs:
/sys/class/sound/hwC0D0/init_verbs:
/sys/class/sound/hwC0D0/hints:
/sys/class/sound/hwC1D0/init_pin_configs: 0x04 0x185600f0 0x05 0x185600f0 0x06 0x585600f0 0x07 0x185600f0
/sys/class/sound/hwC1D0/driver_pin_configs:
/sys/class/sound/hwC1D0/user_pin_configs:
/sys/class/sound/hwC1D0/init_verbs:
/sys/class/sound/hwC1D0/hints:
!!ALSA/HDA dmesg !!--------------
[ 1.259752] ACPI: Added _OSI(Linux-Dell-Video) [ 1.259877] ACPI: Added _OSI(Linux-Lenovo-NV-HDMI-Audio) [ 1.260005] ACPI: EC: EC started -- [ 2.455918] rtc_cmos 00:02: setting system clock to 2018-11-27 05:20:26 UTC (1543296026) [ 2.456097] ALSA device list: [ 2.456206] No soundcards found. [ 2.457801] Freeing unused kernel image memory: 1644K -- [ 19.049747] wlan0: associated [ 266.605307] snd_hda_intel 0000:01:00.1: enabling device (0000 -> 0002) [ 266.605349] snd_hda_intel 0000:01:00.1: Disabling MSI [ 266.605355] snd_hda_intel 0000:01:00.1: Handle vga_switcheroo audio client [ 267.192262] input: HDA NVidia HDMI/DP,pcm=3 as /devices/pci0000:00/0000:00:01.0/0000:01:00.1/sound/card1/input10 [ 267.192455] input: HDA NVidia HDMI/DP,pcm=7 as /devices/pci0000:00/0000:00:01.0/0000:01:00.1/sound/card1/input11 [ 267.192605] input: HDA NVidia HDMI/DP,pcm=8 as /devices/pci0000:00/0000:00:01.0/0000:01:00.1/sound/card1/input12
On Tue, 27 Nov 2018 06:34:02 +0100, Alexander Kappner wrote:
On Mon, 26 Nov 2018, Takashi Iwai wrote:
On Mon, 26 Nov 2018 00:17:15 +0100, Alexander Kappner wrote:
My Lenovo P50 laptop has a BIOS option to disable the microphone. When this option gets chosen, the snd_hda_intel driver causes high CPU load on a single kworker thread, spinning on "process_unsol_events", and system instability. This behavior occurs from the time that the snd_hda_intel module is loaded, irrespective of whether anything is attempting to access the mic. The sound output still works.
When in this state, the module cannot be removed cleanly; attempting to remove it (even without rmmod -f) triggers an oops.
I have attached two exemplary dmesg outputs. Strangely enough, the exact location of the oops varies, but further up the call chain, I always see process_unsol_events.
When the mic is not disabled in the BIOS, the module works stable, regardless whether or not the mic is muted in ALSA.
I wasn't able to pinpoint the root cause. Any pointers on where to start? Much appreciated.
Could you load snd-hda-intel driver with probe_only=1 option, and give alsa-info.sh output (run it with --no-upload option)? This should leave only the codec probing without configuring, so we can see the codec widget contents and check the emulator.
thanks,
Takashi
Hi Takashi,
thank you for looking into this. Please see quoted below the output of alsa-info.sh (after "modprobe snd_hda_intel probe_only=1").
This is the state where BIOS disabled the mic, right? It seems that BIOS doesn't change the pin configuration. The pin NID 0x18 and 0x19 still show up as the mic jack and dock mic jack, as well as the built-in mic on NID 0x12. And I couldn't see anything wrong in the emulator with this input.
When BIOS disables the mic, how is supposed? Does it disable all mics, including built-in one?
Could you check alsa-info.sh outputs on both BIOS mic disable and enabled (but keep probe_only=1 option in both cases)?
Also alsa-info.sh outputs on both cases without probe_only=1 would be helpful, too.
thanks,
Takashi
On Tue, 27 Nov 2018, Takashi Iwai wrote:
On Tue, 27 Nov 2018 06:34:02 +0100, Alexander Kappner wrote:
On Mon, 26 Nov 2018, Takashi Iwai wrote:
On Mon, 26 Nov 2018 00:17:15 +0100, Alexander Kappner wrote:
My Lenovo P50 laptop has a BIOS option to disable the microphone. When this option gets chosen, the snd_hda_intel driver causes high CPU load on a single kworker thread, spinning on "process_unsol_events", and system instability. This behavior occurs from the time that the snd_hda_intel module is loaded, irrespective of whether anything is attempting to access the mic. The sound output still works.
When in this state, the module cannot be removed cleanly; attempting to remove it (even without rmmod -f) triggers an oops.
I have attached two exemplary dmesg outputs. Strangely enough, the exact location of the oops varies, but further up the call chain, I always see process_unsol_events.
When the mic is not disabled in the BIOS, the module works stable, regardless whether or not the mic is muted in ALSA.
I wasn't able to pinpoint the root cause. Any pointers on where to start? Much appreciated.
Could you load snd-hda-intel driver with probe_only=1 option, and give alsa-info.sh output (run it with --no-upload option)? This should leave only the codec probing without configuring, so we can see the codec widget contents and check the emulator.
thanks,
Takashi
Hi Takashi,
thank you for looking into this. Please see quoted below the output of alsa-info.sh (after "modprobe snd_hda_intel probe_only=1").
This is the state where BIOS disabled the mic, right? It seems that BIOS doesn't change the pin configuration. The pin NID 0x18 and 0x19 still show up as the mic jack and dock mic jack, as well as the built-in mic on NID 0x12. And I couldn't see anything wrong in the emulator with this input.
When BIOS disables the mic, how is supposed? Does it disable all mics, including built-in one?
Could you check alsa-info.sh outputs on both BIOS mic disable and enabled (but keep probe_only=1 option in both cases)?
Also alsa-info.sh outputs on both cases without probe_only=1 would be helpful, too.
thanks,
Takashi
Hi Takashi,
as requestd, please see attached four files, reflecting each combination of probe_only and mic enabled/disabled. To answer your question -- yes, the initial file I had sent reflected the mic disabled state.
The BIOS option definitely disables the internal microphone. I could not test whether it would also disable other microphones (e.g. externally connected) since I do not have an external mic, but I will find out.
Best regards Alexander
On Sat, 01 Dec 2018 20:33:16 +0100, Alexander Kappner wrote:
On Tue, 27 Nov 2018, Takashi Iwai wrote:
On Tue, 27 Nov 2018 06:34:02 +0100, Alexander Kappner wrote:
On Mon, 26 Nov 2018, Takashi Iwai wrote:
On Mon, 26 Nov 2018 00:17:15 +0100, Alexander Kappner wrote:
My Lenovo P50 laptop has a BIOS option to disable the microphone. When this option gets chosen, the snd_hda_intel driver causes high CPU load on a single kworker thread, spinning on "process_unsol_events", and system instability. This behavior occurs from the time that the snd_hda_intel module is loaded, irrespective of whether anything is attempting to access the mic. The sound output still works.
When in this state, the module cannot be removed cleanly; attempting to remove it (even without rmmod -f) triggers an oops.
I have attached two exemplary dmesg outputs. Strangely enough, the exact location of the oops varies, but further up the call chain, I always see process_unsol_events.
When the mic is not disabled in the BIOS, the module works stable, regardless whether or not the mic is muted in ALSA.
I wasn't able to pinpoint the root cause. Any pointers on where to start? Much appreciated.
Could you load snd-hda-intel driver with probe_only=1 option, and give alsa-info.sh output (run it with --no-upload option)? This should leave only the codec probing without configuring, so we can see the codec widget contents and check the emulator.
thanks,
Takashi
Hi Takashi,
thank you for looking into this. Please see quoted below the output of alsa-info.sh (after "modprobe snd_hda_intel probe_only=1").
This is the state where BIOS disabled the mic, right? It seems that BIOS doesn't change the pin configuration. The pin NID 0x18 and 0x19 still show up as the mic jack and dock mic jack, as well as the built-in mic on NID 0x12. And I couldn't see anything wrong in the emulator with this input.
When BIOS disables the mic, how is supposed? Does it disable all mics, including built-in one?
Could you check alsa-info.sh outputs on both BIOS mic disable and enabled (but keep probe_only=1 option in both cases)?
Also alsa-info.sh outputs on both cases without probe_only=1 would be helpful, too.
thanks,
Takashi
Hi Takashi,
as requestd, please see attached four files, reflecting each combination of probe_only and mic enabled/disabled. To answer your question -- yes, the initial file I had sent reflected the mic disabled state.
The BIOS option definitely disables the internal microphone. I could not test whether it would also disable other microphones (e.g. externally connected) since I do not have an external mic, but I will find out.
Hrm, that's strange. The mic_enabled_default.txt shows "Mic Jack" false while the mic_disabled_default.txt shows "Mic Jack" true. It sounds like other way round. Could you confirm this behavior?
In anyway, there seems no difference in the pin configs or such between BIOS mic enable/disable. So this shouldn't be the cause.
And I noticed that you're testing 4.19-rc4. Could you test with 4.19 final or 4.19.y stable, at least?
thanks,
Takashi
On Wed, 5 Dec 2018, Takashi Iwai wrote:
On Sat, 01 Dec 2018 20:33:16 +0100, Alexander Kappner wrote:
On Tue, 27 Nov 2018, Takashi Iwai wrote:
On Tue, 27 Nov 2018 06:34:02 +0100, Alexander Kappner wrote:
On Mon, 26 Nov 2018, Takashi Iwai wrote:
On Mon, 26 Nov 2018 00:17:15 +0100, Alexander Kappner wrote:
My Lenovo P50 laptop has a BIOS option to disable the microphone. When this option gets chosen, the snd_hda_intel driver causes high CPU load on a single kworker thread, spinning on "process_unsol_events", and system instability. This behavior occurs from the time that the snd_hda_intel module is loaded, irrespective of whether anything is attempting to access the mic. The sound output still works.
When in this state, the module cannot be removed cleanly; attempting to remove it (even without rmmod -f) triggers an oops.
I have attached two exemplary dmesg outputs. Strangely enough, the exact location of the oops varies, but further up the call chain, I always see process_unsol_events.
When the mic is not disabled in the BIOS, the module works stable, regardless whether or not the mic is muted in ALSA.
I wasn't able to pinpoint the root cause. Any pointers on where to start? Much appreciated.
Could you load snd-hda-intel driver with probe_only=1 option, and give alsa-info.sh output (run it with --no-upload option)? This should leave only the codec probing without configuring, so we can see the codec widget contents and check the emulator.
thanks,
Takashi
Hi Takashi,
thank you for looking into this. Please see quoted below the output of alsa-info.sh (after "modprobe snd_hda_intel probe_only=1").
This is the state where BIOS disabled the mic, right? It seems that BIOS doesn't change the pin configuration. The pin NID 0x18 and 0x19 still show up as the mic jack and dock mic jack, as well as the built-in mic on NID 0x12. And I couldn't see anything wrong in the emulator with this input.
When BIOS disables the mic, how is supposed? Does it disable all mics, including built-in one?
Could you check alsa-info.sh outputs on both BIOS mic disable and enabled (but keep probe_only=1 option in both cases)?
Also alsa-info.sh outputs on both cases without probe_only=1 would be helpful, too.
thanks,
Takashi
Hi Takashi,
as requestd, please see attached four files, reflecting each combination of probe_only and mic enabled/disabled. To answer your question -- yes, the initial file I had sent reflected the mic disabled state.
The BIOS option definitely disables the internal microphone. I could not test whether it would also disable other microphones (e.g. externally connected) since I do not have an external mic, but I will find out.
Hrm, that's strange. The mic_enabled_default.txt shows "Mic Jack" false while the mic_disabled_default.txt shows "Mic Jack" true. It sounds like other way round. Could you confirm this behavior?
In anyway, there seems no difference in the pin configs or such between BIOS mic enable/disable. So this shouldn't be the cause.
And I noticed that you're testing 4.19-rc4. Could you test with 4.19 final or 4.19.y stable, at least?
thanks,
Takashi
Hi Takashi,
I have been trying to reproduce this issue with the more recent 4.20-rc6 kernel, and it has not reoccurred. As such, I tentatively consider this issue resolved. Thank you for your help.
Best regards Alexander
participants (2)
-
Alexander Kappner
-
Takashi Iwai