2021-11-04 16:04:54

by Alex Xu (Hello71)

[permalink] [raw]
Subject: No HDA sound output with AMD IOMMU on master

Hi,

At some point between 86f925fded03 and 5f4e450cd96b, the built-in sound
card on my ASRock B450 Pro4 has stopped working for me. All controls are
unchanged (no new or removed controls, all outputs are unmuted), but
when I try to play sound, I hear a click from the output powering up but
no sound otherwise. While attempting to play sound, the following lines
are output to the kernel log:

[ 15.081961] snd_hda_intel 0000:0b:00.3: AMD-Vi: Event logged [IO_PAGE_FAULT domain=0x0016 address=0x14ac00000 flags=0x0000]
[ 15.081982] snd_hda_intel 0000:0b:00.3: AMD-Vi: Event logged [IO_PAGE_FAULT domain=0x0016 address=0x14ac00040 flags=0x0000]
[ 15.082253] snd_hda_intel 0000:0b:00.3: AMD-Vi: Event logged [IO_PAGE_FAULT domain=0x0016 address=0x14ac00080 flags=0x0000]
[ 15.082581] snd_hda_intel 0000:0b:00.3: AMD-Vi: Event logged [IO_PAGE_FAULT domain=0x0016 address=0x14ac000c0 flags=0x0000]
[ 15.082914] snd_hda_intel 0000:0b:00.3: AMD-Vi: Event logged [IO_PAGE_FAULT domain=0x0016 address=0x14ac00100 flags=0x0000]
[ 15.083247] snd_hda_intel 0000:0b:00.3: AMD-Vi: Event logged [IO_PAGE_FAULT domain=0x0016 address=0x14ac00140 flags=0x0000]
[ 15.083580] snd_hda_intel 0000:0b:00.3: AMD-Vi: Event logged [IO_PAGE_FAULT domain=0x0016 address=0x14ac00180 flags=0x0000]
[ 15.083914] snd_hda_intel 0000:0b:00.3: AMD-Vi: Event logged [IO_PAGE_FAULT domain=0x0016 address=0x14ac001c0 flags=0x0000]
[ 15.084246] snd_hda_intel 0000:0b:00.3: AMD-Vi: Event logged [IO_PAGE_FAULT domain=0x0016 address=0x14ac00200 flags=0x0000]
[ 15.084579] snd_hda_intel 0000:0b:00.3: AMD-Vi: Event logged [IO_PAGE_FAULT domain=0x0016 address=0x14ac00240 flags=0x0000]
[ 749.373925] amd_iommu_report_page_fault: 5917 callbacks suppressed
[ 749.373933] snd_hda_intel 0000:0b:00.3: AMD-Vi: Event logged [IO_PAGE_FAULT domain=0x0016 address=0x1f2000000 flags=0x0000]
[ 749.373952] snd_hda_intel 0000:0b:00.3: AMD-Vi: Event logged [IO_PAGE_FAULT domain=0x0016 address=0x1f2000040 flags=0x0000]
[ 749.374248] snd_hda_intel 0000:0b:00.3: AMD-Vi: Event logged [IO_PAGE_FAULT domain=0x0016 address=0x1f2000080 flags=0x0000]
[ 749.374574] snd_hda_intel 0000:0b:00.3: AMD-Vi: Event logged [IO_PAGE_FAULT domain=0x0016 address=0x1f20000c0 flags=0x0000]
[ 749.374907] snd_hda_intel 0000:0b:00.3: AMD-Vi: Event logged [IO_PAGE_FAULT domain=0x0016 address=0x1f2000100 flags=0x0000]
[ 749.375240] snd_hda_intel 0000:0b:00.3: AMD-Vi: Event logged [IO_PAGE_FAULT domain=0x0016 address=0x1f2000140 flags=0x0000]
[ 749.375572] snd_hda_intel 0000:0b:00.3: AMD-Vi: Event logged [IO_PAGE_FAULT domain=0x0016 address=0x1f2000180 flags=0x0000]
[ 749.375904] snd_hda_intel 0000:0b:00.3: AMD-Vi: Event logged [IO_PAGE_FAULT domain=0x0016 address=0x1f20001c0 flags=0x0000]
[ 749.376238] snd_hda_intel 0000:0b:00.3: AMD-Vi: Event logged [IO_PAGE_FAULT domain=0x0016 address=0x1f2000200 flags=0x0000]
[ 749.376570] snd_hda_intel 0000:0b:00.3: AMD-Vi: Event logged [IO_PAGE_FAULT domain=0x0016 address=0x1f2000240 flags=0x0000]

Note that I first attempted to play audio around 15 seconds in, then
tried again about 730 seconds later.

Adding mem_encrypt=off to the kernel command line does not fix the
issue, but adding mem_encrypt=off amd_iommu=off to the kernel command
line does fix it. I am not using any other IOMMU-related parameters such
as iommu=pt.

I have not yet tested it, but it seems reasonable that this issue is
probably related to the recently pulled "ALSA: memalloc" series of
changes.

Let me know what further information or testing is required. I can do a
full bisection but it is somewhat time-consuming due to the manual
nature of the tests.

Thanks,
Alex.


2021-11-04 19:36:27

by Takashi Iwai

[permalink] [raw]
Subject: Re: No HDA sound output with AMD IOMMU on master

On Thu, 04 Nov 2021 17:01:51 +0100,
Alex Xu (Hello71) wrote:
>
> Hi,
>
> At some point between 86f925fded03 and 5f4e450cd96b, the built-in sound
> card on my ASRock B450 Pro4 has stopped working for me. All controls are
> unchanged (no new or removed controls, all outputs are unmuted), but
> when I try to play sound, I hear a click from the output powering up but
> no sound otherwise. While attempting to play sound, the following lines
> are output to the kernel log:
>
> [ 15.081961] snd_hda_intel 0000:0b:00.3: AMD-Vi: Event logged [IO_PAGE_FAULT domain=0x0016 address=0x14ac00000 flags=0x0000]
> [ 15.081982] snd_hda_intel 0000:0b:00.3: AMD-Vi: Event logged [IO_PAGE_FAULT domain=0x0016 address=0x14ac00040 flags=0x0000]
> [ 15.082253] snd_hda_intel 0000:0b:00.3: AMD-Vi: Event logged [IO_PAGE_FAULT domain=0x0016 address=0x14ac00080 flags=0x0000]
> [ 15.082581] snd_hda_intel 0000:0b:00.3: AMD-Vi: Event logged [IO_PAGE_FAULT domain=0x0016 address=0x14ac000c0 flags=0x0000]
> [ 15.082914] snd_hda_intel 0000:0b:00.3: AMD-Vi: Event logged [IO_PAGE_FAULT domain=0x0016 address=0x14ac00100 flags=0x0000]
> [ 15.083247] snd_hda_intel 0000:0b:00.3: AMD-Vi: Event logged [IO_PAGE_FAULT domain=0x0016 address=0x14ac00140 flags=0x0000]
> [ 15.083580] snd_hda_intel 0000:0b:00.3: AMD-Vi: Event logged [IO_PAGE_FAULT domain=0x0016 address=0x14ac00180 flags=0x0000]
> [ 15.083914] snd_hda_intel 0000:0b:00.3: AMD-Vi: Event logged [IO_PAGE_FAULT domain=0x0016 address=0x14ac001c0 flags=0x0000]
> [ 15.084246] snd_hda_intel 0000:0b:00.3: AMD-Vi: Event logged [IO_PAGE_FAULT domain=0x0016 address=0x14ac00200 flags=0x0000]
> [ 15.084579] snd_hda_intel 0000:0b:00.3: AMD-Vi: Event logged [IO_PAGE_FAULT domain=0x0016 address=0x14ac00240 flags=0x0000]
> [ 749.373925] amd_iommu_report_page_fault: 5917 callbacks suppressed
> [ 749.373933] snd_hda_intel 0000:0b:00.3: AMD-Vi: Event logged [IO_PAGE_FAULT domain=0x0016 address=0x1f2000000 flags=0x0000]
> [ 749.373952] snd_hda_intel 0000:0b:00.3: AMD-Vi: Event logged [IO_PAGE_FAULT domain=0x0016 address=0x1f2000040 flags=0x0000]
> [ 749.374248] snd_hda_intel 0000:0b:00.3: AMD-Vi: Event logged [IO_PAGE_FAULT domain=0x0016 address=0x1f2000080 flags=0x0000]
> [ 749.374574] snd_hda_intel 0000:0b:00.3: AMD-Vi: Event logged [IO_PAGE_FAULT domain=0x0016 address=0x1f20000c0 flags=0x0000]
> [ 749.374907] snd_hda_intel 0000:0b:00.3: AMD-Vi: Event logged [IO_PAGE_FAULT domain=0x0016 address=0x1f2000100 flags=0x0000]
> [ 749.375240] snd_hda_intel 0000:0b:00.3: AMD-Vi: Event logged [IO_PAGE_FAULT domain=0x0016 address=0x1f2000140 flags=0x0000]
> [ 749.375572] snd_hda_intel 0000:0b:00.3: AMD-Vi: Event logged [IO_PAGE_FAULT domain=0x0016 address=0x1f2000180 flags=0x0000]
> [ 749.375904] snd_hda_intel 0000:0b:00.3: AMD-Vi: Event logged [IO_PAGE_FAULT domain=0x0016 address=0x1f20001c0 flags=0x0000]
> [ 749.376238] snd_hda_intel 0000:0b:00.3: AMD-Vi: Event logged [IO_PAGE_FAULT domain=0x0016 address=0x1f2000200 flags=0x0000]
> [ 749.376570] snd_hda_intel 0000:0b:00.3: AMD-Vi: Event logged [IO_PAGE_FAULT domain=0x0016 address=0x1f2000240 flags=0x0000]
>
> Note that I first attempted to play audio around 15 seconds in, then
> tried again about 730 seconds later.
>
> Adding mem_encrypt=off to the kernel command line does not fix the
> issue, but adding mem_encrypt=off amd_iommu=off to the kernel command
> line does fix it. I am not using any other IOMMU-related parameters such
> as iommu=pt.
>
> I have not yet tested it, but it seems reasonable that this issue is
> probably related to the recently pulled "ALSA: memalloc" series of
> changes.
>
> Let me know what further information or testing is required. I can do a
> full bisection but it is somewhat time-consuming due to the manual
> nature of the tests.

Could you try to revert the commit 2d9ea39917a4?


thanks,

Takashi