Internal Audio Issue on TRX40 motherboard ([AMD] Starship/Matisse HD Audio Controller)

fabiosun

New Member
Mar 22, 2020
22
3
3
HI,
usually if I try to pass my matisse Audio controller my VM hangs, and this seems to be a common problem on AMD chipset (also older than mine)
23:00.0 Non-Essential Instrumentation [1300]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse Reserved SPP [1022:1485]
Subsystem: Advanced Micro Devices, Inc. [AMD] Starship/Matisse Reserved SPP [1022:1485]
Kernel driver in use: vfio-pci
23:00.1 Encryption controller [1080]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse Cryptographic Coprocessor PSPCPP [1022:1486]
Subsystem: Advanced Micro Devices, Inc. [AMD] Starship/Matisse Cryptographic Coprocessor PSPCPP [1022:1486]
Kernel driver in use: ccp
Kernel modules: ccp
23:00.3 USB controller [0c03]: Advanced Micro Devices, Inc. [AMD] Starship USB 3.0 Host Controller [1022:148c]
Subsystem: Micro-Star International Co., Ltd. [MSI] Starship USB 3.0 Host Controller [1462:7c60]
Kernel driver in use: xhci_hcd
23:00.4 Audio device [0403]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse HD Audio Controller [1022:1487]
Subsystem: Micro-Star International Co., Ltd. [MSI] Starship/Matisse HD Audio Controller [1462:cb60]
Kernel modules: snd_hda_intel

if I comment this line:
# FIXME: Remove this audio0 device at the next possible time
# see: https://pve.proxmox.com/pipermail/pve-devel/2019-July/038417.html
# https://pve.proxmox.com/pipermail/pve-devel/2019-July/038428.html
[device "audio0"]
driver = "ich9-intel-hda"
bus = "pcie.0"
addr = "1b.0"
VM starts and in web interface I have this log in Tasks:
kvm: vfio: Cannot reset device 0000:23:00.4, depends on group 30 which is not owned. kvm: vfio: Cannot reset device 0000:23:00.4, depends on group 30 which is not owned. TASK OK
Problems with audio are the same (bad audio , not stable, scratchy
May I debug with others data to give here?

oot@pve:~# pveversion -v
proxmox-ve: 6.2-1 (running kernel: 5.4.34-1-pve)
pve-manager: 6.2-4 (running version: 6.2-4/9824574a)
pve-kernel-5.4: 6.2-1
pve-kernel-helper: 6.2-1
pve-kernel-5.4.34-1-pve: 5.4.34-2
ceph-fuse: 12.2.11+dfsg1-2.1+b1
corosync: 3.0.3-pve1
criu: 3.11-3
glusterfs-client: 5.5-3
ifupdown: 0.8.35+pve1
ksm-control-daemon: 1.3-1
libjs-extjs: 6.0.1-10
libknet1: 1.15-pve1
libproxmox-acme-perl: 1.0.3
libpve-access-control: 6.1-1
libpve-apiclient-perl: 3.0-3
libpve-common-perl: 6.1-2
libpve-guest-common-perl: 3.0-10
libpve-http-server-perl: 3.0-5
libpve-storage-perl: 6.1-7
libqb0: 1.0.5-1
libspice-server1: 0.14.2-4~pve6+1
lvm2: 2.03.02-pve4
lxc-pve: 4.0.2-1
lxcfs: 4.0.3-pve2
novnc-pve: 1.1.0-1
proxmox-mini-journalreader: 1.1-1
proxmox-widget-toolkit: 2.2-1
pve-cluster: 6.1-8
pve-container: 3.1-5
pve-docs: 6.2-4
pve-edk2-firmware: 2.20200229-1
pve-firewall: 4.1-2
pve-firmware: 3.1-1
pve-ha-manager: 3.0-9
pve-i18n: 2.1-2
pve-qemu-kvm: 5.0.0-2
pve-xtermjs: 4.3.0-1
qemu-server: 6.2-2
smartmontools: 7.1-pve2
spiceterm: 3.1-1
vncterm: 1.6-1
zfsutils-linux: 0.8.3-pve1
root@pve:~#
Thank you
 
Hi,

The audio dev "audio0" is a virtual device and not a physical passthrough.
The "23: 00.4 Audio Device" physical audio device is not isolated in its own IOMMU group.
Please send the output of

Code:
find /sys/kernel/iommu_groups/ -type l
qm config <vmid>
 
  • Like
Reactions: fabiosun
Hi,

The audio dev "audio0" is a virtual device and not a physical passthrough.
The "23: 00.4 Audio Device" physical audio device is not isolated in its own IOMMU group.
Please send the output of
/sys/kernel/iommu_groups/55/devices/0000:49:00.0
/sys/kernel/iommu_groups/17/devices/0000:04:00.3
/sys/kernel/iommu_groups/45/devices/0000:41:00.0
/sys/kernel/iommu_groups/35/devices/0000:40:01.1
/sys/kernel/iommu_groups/7/devices/0000:00:07.0
/sys/kernel/iommu_groups/63/devices/0000:60:07.0
/sys/kernel/iommu_groups/25/devices/0000:20:07.1
/sys/kernel/iommu_groups/53/devices/0000:44:00.0
/sys/kernel/iommu_groups/15/devices/0000:03:00.0
/sys/kernel/iommu_groups/43/devices/0000:40:08.0
/sys/kernel/iommu_groups/33/devices/0000:23:00.4
/sys/kernel/iommu_groups/5/devices/0000:00:04.0
/sys/kernel/iommu_groups/61/devices/0000:60:04.0
/sys/kernel/iommu_groups/23/devices/0000:20:05.0
/sys/kernel/iommu_groups/51/devices/0000:48:00.0
/sys/kernel/iommu_groups/51/devices/0000:42:0a.0
/sys/kernel/iommu_groups/13/devices/0000:01:00.0
/sys/kernel/iommu_groups/41/devices/0000:40:07.0
/sys/kernel/iommu_groups/31/devices/0000:23:00.1
/sys/kernel/iommu_groups/3/devices/0000:00:02.0
/sys/kernel/iommu_groups/21/devices/0000:20:03.1
/sys/kernel/iommu_groups/11/devices/0000:00:14.3
/sys/kernel/iommu_groups/11/devices/0000:00:14.0
/sys/kernel/iommu_groups/68/devices/0000:62:00.0
/sys/kernel/iommu_groups/1/devices/0000:00:01.1
/sys/kernel/iommu_groups/58/devices/0000:60:01.0
/sys/kernel/iommu_groups/48/devices/0000:42:05.0
/sys/kernel/iommu_groups/38/devices/0000:40:03.0
/sys/kernel/iommu_groups/66/devices/0000:60:08.1
/sys/kernel/iommu_groups/28/devices/0000:21:00.1
/sys/kernel/iommu_groups/28/devices/0000:21:00.0
/sys/kernel/iommu_groups/56/devices/0000:4a:00.0
/sys/kernel/iommu_groups/18/devices/0000:20:01.0
/sys/kernel/iommu_groups/46/devices/0000:42:02.0
/sys/kernel/iommu_groups/36/devices/0000:40:01.3
/sys/kernel/iommu_groups/8/devices/0000:00:07.1
/sys/kernel/iommu_groups/64/devices/0000:60:07.1
/sys/kernel/iommu_groups/26/devices/0000:20:08.0
/sys/kernel/iommu_groups/54/devices/0000:45:00.0
/sys/kernel/iommu_groups/16/devices/0000:04:00.0
/sys/kernel/iommu_groups/44/devices/0000:40:08.1
/sys/kernel/iommu_groups/34/devices/0000:40:01.0
/sys/kernel/iommu_groups/6/devices/0000:00:05.0
/sys/kernel/iommu_groups/62/devices/0000:60:05.0
/sys/kernel/iommu_groups/24/devices/0000:20:07.0
/sys/kernel/iommu_groups/52/devices/0000:43:00.0
/sys/kernel/iommu_groups/14/devices/0000:02:00.0
/sys/kernel/iommu_groups/42/devices/0000:40:07.1
/sys/kernel/iommu_groups/32/devices/0000:23:00.3
/sys/kernel/iommu_groups/4/devices/0000:00:03.0
/sys/kernel/iommu_groups/60/devices/0000:60:03.0
/sys/kernel/iommu_groups/22/devices/0000:20:04.0
/sys/kernel/iommu_groups/50/devices/0000:47:00.0
/sys/kernel/iommu_groups/50/devices/0000:42:09.0
/sys/kernel/iommu_groups/12/devices/0000:00:18.3
/sys/kernel/iommu_groups/12/devices/0000:00:18.1
/sys/kernel/iommu_groups/12/devices/0000:00:18.6
/sys/kernel/iommu_groups/12/devices/0000:00:18.4
/sys/kernel/iommu_groups/12/devices/0000:00:18.2
/sys/kernel/iommu_groups/12/devices/0000:00:18.0
/sys/kernel/iommu_groups/12/devices/0000:00:18.7
/sys/kernel/iommu_groups/12/devices/0000:00:18.5
/sys/kernel/iommu_groups/40/devices/0000:40:05.0
/sys/kernel/iommu_groups/30/devices/0000:23:00.0
/sys/kernel/iommu_groups/2/devices/0000:00:01.2
/sys/kernel/iommu_groups/59/devices/0000:60:02.0
/sys/kernel/iommu_groups/20/devices/0000:20:03.0
/sys/kernel/iommu_groups/49/devices/0000:46:00.3
/sys/kernel/iommu_groups/49/devices/0000:46:00.1
/sys/kernel/iommu_groups/49/devices/0000:46:00.0
/sys/kernel/iommu_groups/49/devices/0000:42:08.0
/sys/kernel/iommu_groups/10/devices/0000:00:08.1
/sys/kernel/iommu_groups/39/devices/0000:40:04.0
/sys/kernel/iommu_groups/67/devices/0000:61:00.0
/sys/kernel/iommu_groups/29/devices/0000:22:00.0
/sys/kernel/iommu_groups/0/devices/0000:00:01.0
/sys/kernel/iommu_groups/57/devices/0000:4b:00.0
/sys/kernel/iommu_groups/19/devices/0000:20:02.0
/sys/kernel/iommu_groups/47/devices/0000:42:04.0
/sys/kernel/iommu_groups/37/devices/0000:40:02.0
/sys/kernel/iommu_groups/9/devices/0000:00:08.0
/sys/kernel/iommu_groups/65/devices/0000:60:08.0
/sys/kernel/iommu_groups/27/devices/0000:20:08.1

root@pve:~# qm config 100
agent: 1
args: -smbios type=2 -cpu host,vendor=GenuineIntel,+invtsc
bios: ovmf
boot: d
cores: 64
cpu: host
efidisk0: local-lvm:vm-100-disk-1,size=4M
hostpci0: 21:00,pcie=1,x-vga=1
hostpci1: 01:00.0
hostpci10: 48:00
hostpci11: 04:00.3
hostpci2: 02:00.0
hostpci3: 00:14.0
hostpci4: 44:00
hostpci5: 45:00
hostpci6: 46:00
hostpci7: 23:00.3
hostpci8: 23:00.4
hostpci9: 47:00
machine: q35
memory: 121856
name: sierra
net0: vmxnet3=12:83:7D:28:45:26,bridge=vmbr0,firewall=1
numa: 1
ostype: other
scsihw: virtio-scsi-pci
smbios1: uuid=43051c32-3e2e-4f80-b7cc-d50def662b0b
sockets: 1
startup: down=20
tablet: 0
vga: none
vmgenid: 284011f9-380c-4bdf-b57f-08eda8f03bb9

In a Windows 64 bit Realtek USB 2.0 internal audio is perfect:

root@pve:~# qm config 104
bios: ovmf
bootdisk: sata0
cores: 64
cpu: host
efidisk0: local-lvm:vm-104-disk-1,size=4M
hostpci0: 21:00,pcie=1,x-vga=1
hostpci11: 04:00.3
hostpci4: 44:00
hostpci5: 45:00
hostpci6: 46:00
hostpci7: 23:00.3
hostpci8: 23:00.4
ide0: local:iso/virtio-win-0.1.173.iso,media=cdrom,size=384670K
machine: q35
memory: 65536
name: Windows
net0: e1000=B6:90:7C:45:AF:F9,bridge=vmbr0,firewall=1
numa: 0
ostype: win10
sata0: local-lvm:vm-104-disk-0,size=32G
scsihw: virtio-scsi-pci
smbios1: uuid=89fee8df-5637-4f57-965d-e27c8ecf49ab
sockets: 1
tablet: 0
vga: none
vmgenid: 13d26033-ec05-455b-990c-cec2b600ee5b

I can pass easily all my controllers in my rig but audio in osx is not working
To see audio device in OSX I have to pass single USB device in this way:
usb1: host=xxxx:xxxx
if I pass 23:00.4 controller I cannot see Realtek audio device
in usb single way I can see and select but audio is bad

I think of a sort of interferences between usb and audio bridge

If I comment audio0 device , I can pass 23:00.4 controller without FLR kernel patch

attached my lspci -nnk output:


Thank you again for your attention
 

Attachments

Ok the IOMMU group is isolated.
But you have the Audio Dev in two different VM's.
Do you run them parallel?
 
  • Like
Reactions: fabiosun
No
I run 1 at once
OSX VM has audio problem
Windows 10 64 bit no problem at all
I think it is an OSX internal audio problem but I do not know how to solve for now
 
That could be possible. Maybe a Bios Update of the Mainboard will fix this in the future.
 
  • Like
Reactions: fabiosun