[alsa-devel] [snd_hda_intel] snd_hda_intel causes high CPU lockup and system instability if mic disabled in BIOS on Lenovo P50

Alexander Kappner agk at godking.net
Sat Dec 1 20:33:16 CET 2018



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
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: alsa_micenabled_probeonly.txt
URL: <http://mailman.alsa-project.org/pipermail/alsa-devel/attachments/20181201/450a4fe5/attachment-0004.txt>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: alsa_micenabled_default.txt
URL: <http://mailman.alsa-project.org/pipermail/alsa-devel/attachments/20181201/450a4fe5/attachment-0005.txt>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: alsa_micdisabled_probeonly.txt
URL: <http://mailman.alsa-project.org/pipermail/alsa-devel/attachments/20181201/450a4fe5/attachment-0006.txt>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: alsa_micdisabled_default.txt
URL: <http://mailman.alsa-project.org/pipermail/alsa-devel/attachments/20181201/450a4fe5/attachment-0007.txt>


More information about the Alsa-devel mailing list