Epyc on Asrock ROMED6U-2L2T - Proxmox Build

Hello everyone, sharing some of the fun that has kept me busy in the past couple of months.
I have built a Proxmox server on top of an Asrock Epyc Micro-ATX board, the ROMED6U-2L2T.

Here is my part list:

  • Asrock Rack ROMED6U-2L2T
  • EPYC 7402P 24-Core Processor
  • Noctua NH-U9 TR4-SP3 Air Cooler
  • 128GB ECC Unbranded DRAM 2x32GB, 4x16GB, the ROMED6U has 6 dimm slots)
  • Proxmox VE as main OS
  • Radeon XT 5700 passed through my main Windows WM (for Gaming)
  • Sapphire GPRO e9260 8 GB passed through my main OSX VM (for Working)
  • 2x Fresco Logic FL1100 USB 3.0 Host Controllers, passed through either my main VMs, connected using two of the ROMED6U Slimline connectors to external PCIe 8x slots
  • 1x Dual 2X NVME M.2 AHCI x8 adapter, bifurcated to 2x 4x NVME ssds
  • 1x 4x NVME Pci Adapter
  • OS running from the onboard NVME slot
    a bunch of SSDs for storage of the non passtrhrough VMs

Case:

  • 2x Thermaltake Core V21 Stacked ( I already had them from previous builds)
  • 2x Noctua NF-A14 PWM in pull configuration
  • 2x 200mm Thermaltake FANs in push configuration

Use case for the build: I work and game and run various projects from my home office, my daily drivers were two Core i5 6th and 7th gen running OSX plus Virtualbox and Windows exclusively for gaming.
The server will run these two workloads virtualized, plus a bunch of accessory VMs I use daily for y work/experiments

The Asrock MB is running Beta Bios 3.01, and BMC firmware 1.10.00!

The only issue I have encountered so far (other than spending way too much money for parts that are not readily available here in southern europe) is the fact that the BIOS sees only my 32GB DIMMS, while the 16GB DIMMS are not showing either in the BMC inventory or in the BIOS, but are seen and work in the OS

IMG_20210624_075210|720x540

In order to get maximum perfomance and minimum latency out of the OSX and Windows VMs I have adapted some existing Proxmox init scripts to make sure the following happens when a VM that needs low latency is started:

  • The VM emulator threads are moved to a set of cores that are shielded from normal OS operations, and pinned on a one to one ratio
  • Each VM gets its own Video, Storage, USB, by using VFIO passthrough
  • The Host interrupt handler affinity is changed to make sure only the pinned cores are processing the interrupts generate by the passed through hardware
  • I try to keep the pinned cpu cores aggregated by CCX, in order to maximize l3 cache performance
  • I change both the cpu governor and, for the windows VM, the scheduler used in order to make sure latency spikes occur as rarely as possible

The scripts I use to perform these config tasks automatically on VM start are available here:

PVE-Helpers

In short, I augment the proxmox configuration file with the information that is needed to perform the optimizations, an example of which is:

#cpu_governor performance
#cpu_emulatorpin 20
#cpu_taskset 6,7,8,9,10,11,12,13,14,15,16,17
#assign_interrupts 6,7,8,9,10,11,12,13,14,15,16,17 "0000:8a:00.0"
#assign_interrupts 6,7,8,9,10,11,12,13,14,15,16,17 "0000:8a:00.1"
#assign_interrupts 6,7,8,9,10,11,12,13,14,15,16,17 "0000:01:00.0"
#assign_interrupts 6,7,8,9,10,11,12,13,14,15,16,17 "0000:81:00.0"
#cpu_chrt fifo 1
balloon: 0
bios: ovmf
boot: order=hostpci2
cores: 12
cpu: host,hidden=1,flags=+pcid;-ssbd;+ibpb;-virt-ssbd;+amd-no-ssb;+pdpe1gb;+aes
cpulimit: 12
efidisk0: local-lvm:vm-106-disk-0,size=4M
hookscript: local:snippets/taskset-hook.sh
hostpci0: 0000:8a:00.0,pcie=1,x-vga=1
hostpci1: 0000:81:00.0,pcie=1
hostpci2: 0000:01:00.0,pcie=1
hostpci3: 0000:8a:00.1,pcie=1
hugepages: 1024
kvm: 1
machine: pc-q35-5.2
memory: 16384
name: win10GamingTest
net0: virtio=D2:98:19:5F:EB:02,bridge=vmbr0,firewall=1
numa: 1
ostype: win10
scsihw: virtio-scsi-pci
smbios1: uuid=8f5cff06-d005-4928-92e0-4e63d6be635b

Here is my processor topology, it looks like the 24 cores of the EPYC are distributed across 8CCXs, each with 3 cores:

I am using VFIO to pass through the needed hardware to the VMs, and the vendor-reset kernel module to be able to shut down/restart VMs with AMD cards passed through without having to reboot the host

Thermals are decent, the FANS are quiet (not silent) at what I consider rest (only my OSX vm running playing music through spotify):

ID | Name           | Type              | Reading    | Units | Event
1  | 3VSB           | Voltage           | 3.36       | V     | 'OK'
2  | 5VSB           | Voltage           | 5.01       | V     | 'OK'
3  | VCPU           | Voltage           | 1.24       | V     | 'OK'
4  | VSOC           | Voltage           | 0.86       | V     | 'OK'
5  | VCCM ABC       | Voltage           | 1.21       | V     | 'OK'
6  | VCCM EFG       | Voltage           | 1.21       | V     | 'OK'
7  | VPPM ABC       | Voltage           | 2.56       | V     | 'OK'
8  | VPPM EFG       | Voltage           | 2.56       | V     | 'OK'
9  | LAN_1.88V      | Voltage           | 1.80       | V     | 'OK'
10 | 1.8VSB         | Voltage           | 1.84       | V     | 'OK'
11 | 1.8V           | Voltage           | 1.83       | V     | 'OK'
12 | BAT            | Voltage           | 3.10       | V     | 'OK'
13 | 3V             | Voltage           | 3.34       | V     | 'OK'
14 | 5V             | Voltage           | 5.07       | V     | 'OK'
15 | 12V            | Voltage           | 11.90      | V     | 'OK'
16 | LAN_1.0V       | Voltage           | 0.99       | V     | 'OK'
17 | PSU1 VIN       | Voltage           | N/A        | V     | N/A
18 | PSU2 VIN       | Voltage           | N/A        | V     | N/A
19 | PSU1 IOUT      | Current           | N/A        | A     | N/A
20 | PSU2 IOUT      | Current           | N/A        | A     | N/A
21 | MB_A Temp      | Temperature       | 36.00      | C     | 'OK'
22 | MB_B Temp      | Temperature       | 38.00      | C     | 'OK'
23 | Card Side Temp | Temperature       | 44.00      | C     | 'OK'
24 | X710 Temp      | Temperature       | 45.00      | C     | 'OK'
25 | CPU Temp       | Temperature       | 50.00      | C     | 'OK'
26 | CPU Power      | Power Supply      | 53.00      | W     | 'OK'
27 | TR1 Temp       | Temperature       | N/A        | C     | N/A
28 | TEMP M_2_1     | Temperature       | N/A        | C     | N/A
29 | TEMP M_2_2     | Temperature       | N/A        | C     | N/A
30 | DDR4_A Temp    | Temperature       | 43.00      | C     | 'OK'
31 | DDR4_C Temp    | Temperature       | 43.00      | C     | 'OK'
32 | DDR4_D Temp    | Temperature       | 43.00      | C     | 'OK'
33 | DDR4_E Temp    | Temperature       | 45.00      | C     | 'OK'
34 | DDR4_G Temp    | Temperature       | 44.00      | C     | 'OK'
35 | DDR4_H Temp    | Temperature       | 43.00      | C     | 'OK'
36 | PSU1 Temp      | Temperature       | N/A        | C     | N/A
37 | PSU2 Temp      | Temperature       | N/A        | C     | N/A
38 | FAN1           | Fan               | 1300.00    | RPM   | 'OK'
39 | FAN2           | Fan               | 1400.00    | RPM   | 'OK'
40 | FAN3           | Fan               | 800.00     | RPM   | 'OK'
41 | FAN4           | Fan               | 800.00     | RPM   | 'OK'
42 | FAN5           | Fan               | N/A        | RPM   | N/A
43 | FAN6           | Fan               | 300.00     | RPM   | 'OK'
44 | PSU1 PIN       | Power Supply      | N/A        | W     | N/A
45 | PSU2 PIN       | Power Supply      | N/A        | W     | N/A
46 | PSU1 POUT      | Power Supply      | N/A        | W     | N/A
47 | PSU2 POUT      | Power Supply      | N/A        | W     | N/A
48 | ChassisIntr    | Physical Security | N/A        | N/A   | 'OK'
49 | CPU_PROCHOT    | Processor         | N/A        | N/A   | 'OK'
50 | CPU_THERMTRIP  | Processor         | N/A        | N/A   | 'OK'
51 | PSU1 Status    | Power Supply      | N/A        | N/A   | 'OK'
52 | PSU1 AC lost   | Power Supply      | N/A        | N/A   | N/A
53 | PSU2 Status    | Power Supply      | N/A        | N/A   | 'OK'
54 | PSU2 AC lost   | Power Supply      | N/A        | N/A   | N/A

Power draw is a mixed bag, around 150W with only the OSX VM running, (I blame thw AMD card for 60 Watts of it) and 170-190 with both VGA passthrough active, while not gaming

I am running headless on the Proxmox server, and control some of the core stats and the state of my main VMs using a Streamdeck (code still under development, will be available here when ready):

So far so good, perfomance is more than good, I get about 3GB/S in sequential read and write on the OSX VM using a 2TB MZ-V7S2T0 970 EVO Plus , and decent performance out of the 5700XT in windows (mainly Apex Legends)

Stability is excellent, as long as the 5700XT doesnā€™t crash while gaming, that earns me a full power cycle to get it started again, but that is expected.

I had to try a bunch of USB PCI cards and settled for the non SATA powered version of these cards: Inateck KTU3FR-4P 4 porte PCI Express card desktop usb Controller, Fresco FL1100 chipset, they are connected to a USB hub each on one port, and a Zoom audio interface on the other (Livetrak L-12 on the OSX side, Zoom U-24 on the windows side)

So far it has been an ā€˜interstingā€™ journey, definitely worth the time invested in knowledge acquired ā€¦ did I really need a virtualized environment for my use case? Probably not, but building two separate systems in this period of components dearth would have been challenging anyway ā€¦ and boring ā€¦

Feel free to pitch in for details about specific parts of the configuration

Cheers

Mattia

10 Likes

Interesting build - what made you choose the ROMED6 rather than the 8-DIMM D8 variant?

Also which slim SAS cables and Slim-SAS <ā€“> PCIe slot adaptors are you using? I presume youā€™ve mounted them more permanently than in that picture!

Hi, the main reasons were:
1 - I already had the micro ATX cases
2 - The Romed6 has two more network interfaces, I thought they would come in handy for passtrough
3- I thought 3x slim PCI ports would give me more flexibility than two additional 16x slots
4- I am not planning on running a CPU that would effectively make use of the additional 2x dimms, if my understanding of the mapping between chillers and access to memory is correct

The slim cables:
https://www.newegg.com/p/2VX-05TA-00002?item=9SIAEGBCYP0889

The PCI extenders:
https://www.newegg.com/p/2BN-00BX-000R7?item=9SIAEGBD4N6295

They are still mounted in that precarious position, I am still unsure whether to put everything into a single core v21 case or to keep the two stacked ones. Thermals are not bad as it is, waiting for temps to go down to see how much the fans kick in when not in the warmest part of the yearā€¦

1 Like

A small update,

Everything working, performance more than adequate for my workloads.
The only issues I have had so far were:

  • The OSX VM bootloader would crash unless a monitor signal was available at boot time. I think the boot loader cannot handle negotiatig a resolution with my particular monitor (a Philips BDM4350) when said monitor is in power saving mode, and canā€™t handle the monitor being connected but completely turned off. I started looking into modifying the OVMF bios to assume a resolution of 3840x2160, but I wasnā€™t sure the effort would be wort it, so I cheated and bought a dummy DP plug, so that at boot time at least one display port is connected and active. That fixed it and avoided me having to be phisically in front of the pc to turn on the monitor at the appropriate time when booting the OSX VM

  • The OSX VM causing Latency spikes on the Windows VM when gaming/streaming audio: I have solved this by shuffling around the PCI cards in order for them to be in separate physical groups/slots, if that makes sense. Originally the OSX NVME was in the same Root Complex as the Windows GPU

  • The Windows GPU (XFX 5700XT 8GB) was mostly working, but if it crashed for any reason while gaming, it could not be reset other than with a full power down of the Proxmox host (not even a reset would suffice). This was really annoying, I tried multiple possible workarounds/fixes, but then just gave up and exchanged it with a 3070ti. The behaviour is the same (some games still crash, sometimes) but a shutdown and restart of the VM fixes it, the only quirk I still have is that when this happens the reboot takes anywhere from 1 to 2 minutes for the bios screen to show up, and I have to power off and on any usb device attached to the passed through USB pci card

  • The 3070ti properly supports PCIe Active State Power Management, the 5700XT could not, and enabling it would cause endless pci bus resets: this means that when the WIndows GPU is not in use it can be actually set to a lower power state, saving some 20-30W when idling (finger in the air measurement)

This is my current layout for the pci bus, In the end I had to make use of all three slim line pci extension boards to be able to move stuff in a way there were no sharing between passed through pci cards and different VMs

root@pve:~# lspci -tv
-+-[0000:c0]-+-00.0  Advanced Micro Devices, Inc. [AMD] Starship/Matisse Root Complex
 |           +-00.2  Advanced Micro Devices, Inc. [AMD] Starship/Matisse IOMMU
 |           +-01.0  Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge
 |           +-01.1-[c1]--+-00.0  NVIDIA Corporation Device 2482
 |           |            \-00.1  NVIDIA Corporation Device 228b
 |           +-02.0  Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge
 |           +-03.0  Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge
 |           +-03.2-[c2]----00.0  Micron/Crucial Technology Device 540a
 |           +-04.0  Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge
 |           +-05.0  Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge
 |           +-07.0  Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge
 |           +-07.1-[c3]--+-00.0  Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Function
 |           |            \-00.2  Advanced Micro Devices, Inc. [AMD] Starship/Matisse PTDMA
 |           +-08.0  Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge
 |           \-08.1-[c4]--+-00.0  Advanced Micro Devices, Inc. [AMD] Starship/Matisse Reserved SPP
 |                        \-00.2  Advanced Micro Devices, Inc. [AMD] Starship/Matisse PTDMA
 +-[0000:80]-+-00.0  Advanced Micro Devices, Inc. [AMD] Starship/Matisse Root Complex
 |           +-00.2  Advanced Micro Devices, Inc. [AMD] Starship/Matisse IOMMU
 |           +-01.0  Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge
 |           +-01.1-[81]----00.0  Fresco Logic FL1100 USB 3.0 Host Controller
 |           +-01.3-[82-83]--+-00.0  Intel Corporation Ethernet Controller X710 for 10GBASE-T
 |           |               \-00.1  Intel Corporation Ethernet Controller X710 for 10GBASE-T
 |           +-01.4-[84]----00.0  Intel Corporation I210 Gigabit Network Connection
 |           +-01.5-[85]----00.0  Intel Corporation I210 Gigabit Network Connection
 |           +-01.6-[86-87]----00.0-[87]----00.0  ASPEED Technology, Inc. ASPEED Graphics Family
 |           +-02.0  Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge
 |           +-03.0  Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge
 |           +-04.0  Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge
 |           +-05.0  Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge
 |           +-07.0  Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge
 |           +-07.1-[88]--+-00.0  Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Function
 |           |            \-00.2  Advanced Micro Devices, Inc. [AMD] Starship/Matisse PTDMA
 |           +-08.0  Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge
 |           +-08.1-[89]--+-00.0  Advanced Micro Devices, Inc. [AMD] Starship/Matisse Reserved SPP
 |           |            \-00.2  Advanced Micro Devices, Inc. [AMD] Starship/Matisse PTDMA
 |           +-08.2-[8a]----00.0  Advanced Micro Devices, Inc. [AMD] FCH SATA Controller [AHCI mode]
 |           \-08.3-[8b]----00.0  Advanced Micro Devices, Inc. [AMD] FCH SATA Controller [AHCI mode]
 +-[0000:40]-+-00.0  Advanced Micro Devices, Inc. [AMD] Starship/Matisse Root Complex
 |           +-00.2  Advanced Micro Devices, Inc. [AMD] Starship/Matisse IOMMU
 |           +-01.0  Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge
 |           +-01.2-[41]----00.0  Fresco Logic FL1100 USB 3.0 Host Controller
 |           +-02.0  Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge
 |           +-03.0  Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge
 |           +-03.1-[42]--+-00.0  Advanced Micro Devices, Inc. [AMD/ATI] Baffin [Polaris11]
 |           |            \-00.1  Advanced Micro Devices, Inc. [AMD/ATI] Baffin HDMI/DP Audio [Radeon RX 550 640SP / RX 560/560X]
 |           +-04.0  Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge
 |           +-05.0  Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge
 |           +-07.0  Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge
 |           +-07.1-[43]--+-00.0  Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Function
 |           |            \-00.2  Advanced Micro Devices, Inc. [AMD] Starship/Matisse PTDMA
 |           +-08.0  Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge
 |           +-08.1-[44]--+-00.0  Advanced Micro Devices, Inc. [AMD] Starship/Matisse Reserved SPP
 |           |            +-00.1  Advanced Micro Devices, Inc. [AMD] Starship/Matisse Cryptographic Coprocessor PSPCPP
 |           |            +-00.2  Advanced Micro Devices, Inc. [AMD] Starship/Matisse PTDMA
 |           |            \-00.3  Advanced Micro Devices, Inc. [AMD] Starship USB 3.0 Host Controller
 |           +-08.2-[45]----00.0  Advanced Micro Devices, Inc. [AMD] FCH SATA Controller [AHCI mode]
 |           \-08.3-[46]----00.0  Advanced Micro Devices, Inc. [AMD] FCH SATA Controller [AHCI mode]
 \-[0000:00]-+-00.0  Advanced Micro Devices, Inc. [AMD] Starship/Matisse Root Complex
             +-00.2  Advanced Micro Devices, Inc. [AMD] Starship/Matisse IOMMU
             +-01.0  Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge
             +-01.1-[01]----00.0  Samsung Electronics Co Ltd NVMe SSD Controller SM981/PM981
             +-01.2-[02]----00.0  Phison Electronics Corporation E12 NVMe Controller
             +-02.0  Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge
             +-03.0  Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge
             +-03.2-[03]----00.0  Samsung Electronics Co Ltd NVMe SSD Controller SM961/PM961
             +-04.0  Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge
             +-05.0  Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge
             +-07.0  Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge
             +-07.1-[04]--+-00.0  Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Function
             |            \-00.2  Advanced Micro Devices, Inc. [AMD] Starship/Matisse PTDMA
             +-08.0  Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge
             +-08.1-[05]--+-00.0  Advanced Micro Devices, Inc. [AMD] Starship/Matisse Reserved SPP
             |            +-00.2  Advanced Micro Devices, Inc. [AMD] Starship/Matisse PTDMA
             |            \-00.3  Advanced Micro Devices, Inc. [AMD] Starship USB 3.0 Host Controller
             +-14.0  Advanced Micro Devices, Inc. [AMD] FCH SMBus Controller
             +-14.3  Advanced Micro Devices, Inc. [AMD] FCH LPC Bridge
             +-18.0  Advanced Micro Devices, Inc. [AMD] Starship Device 24; Function 0
             +-18.1  Advanced Micro Devices, Inc. [AMD] Starship Device 24; Function 1
             +-18.2  Advanced Micro Devices, Inc. [AMD] Starship Device 24; Function 2
             +-18.3  Advanced Micro Devices, Inc. [AMD] Starship Device 24; Function 3
             +-18.4  Advanced Micro Devices, Inc. [AMD] Starship Device 24; Function 4
             +-18.5  Advanced Micro Devices, Inc. [AMD] Starship Device 24; Function 5
             +-18.6  Advanced Micro Devices, Inc. [AMD] Starship Device 24; Function 6
             \-18.7  Advanced Micro Devices, Inc. [AMD] Starship Device 24; Function 7

I have also played around a little with airflow, mostly because of my case not really being suited for this type of motherboard.
Room temperature today is on the warm side (26C), and these are ths temps registered with my main OSX VM running :

21 | MB_A Temp      | Temperature       | 35.00      | C     | 'OK'
22 | MB_B Temp      | Temperature       | 37.00      | C     | 'OK'
23 | Card Side Temp | Temperature       | 44.00      | C     | 'OK'
24 | X710 Temp      | Temperature       | 42.00      | C     | 'OK'
25 | CPU Temp       | Temperature       | 49.00      | C     | 'OK'
27 | TR1 Temp       | Temperature       | N/A        | C     | N/A
28 | TEMP M_2_1     | Temperature       | N/A        | C     | N/A
29 | TEMP M_2_2     | Temperature       | N/A        | C     | N/A
30 | DDR4_A Temp    | Temperature       | 42.00      | C     | 'OK'
31 | DDR4_C Temp    | Temperature       | 43.00      | C     | 'OK'
32 | DDR4_D Temp    | Temperature       | 44.00      | C     | 'OK'
33 | DDR4_E Temp    | Temperature       | 44.00      | C     | 'OK'
34 | DDR4_G Temp    | Temperature       | 45.00      | C     | 'OK'
35 | DDR4_H Temp    | Temperature       | 43.00      | C     | 'OK'

I am still shielding VM processes from OS processes, and have settled for the following config:
Cores 0-19 and 24-44 are shielded from OS processes by running the following at reboot:

# m h  dom mon dow   command
@reboot /usr/local/bin/shield-set.sh

/usr/local/bin/shield-set.sh

#!/bin/bash
cset shield --kthread on  --cpu 0-19,24-44
cset proc --move --fromset=root --toset=system --threads --kthread --force
r

This is my current kernel command line used when booting:

GRUB_CMDLINE_LINUX_DEFAULT="video=vesafb:off video=efifb:off amd_iommu=on iommu=pt default_hugepagesz=1G hugepagesz=1G hugepages=64 spec_store_bypass_disable=off nopti mitigations=off rd.driver.pre=vfio_pci apparmor=1 security=apparmor udev.log_priority=3 nohz_full=0,20,24-44 rcu_nocbs=0,20,24-44"
  • amd_iommu=on iommu=pt : enables AMD iommu groups
  • default_hugepagesz=1G hugepagesz=1G hugepages=64: allocates 64GB out of 128GB of ram to be used by huge pages, this boosts performance of latency sensitive VMs (I run audio interfaces on both the OSX and WIndows VM)
  • spec_store_bypass_disable=off nopti mitigations=off: diables mitigations for the cpu vulnerabilities, in exchange of some more perfromance
  • rd.driver.pre=vfio_pci: this should cause the vfio kernel module to.be loaded early in the boot process, improving stability/reliability in handling GPU passthrough
  • nohz_full=0,19,24-44 rcu_nocbs=0,19,24-44": complements the settings in the shielding script, reserves these cores from normal OS operating processes

I am still working on improving the streamdeck handling of monitoring system states and starting/stopping VMs, so far no version of the code is deemed from the to be in a publishing state

1 Like

I think thereā€™s a typo in your kernel parameters? 0,20 instead of 0-19.

Iā€™ve been kinda curious about doing a similar build myself but itā€™ll probably have to wait until I get a job again.

1 Like

Thanks mate, there indeed was a typo, I am shielding cores 0-19, 24-43 (40 cores total shielded, 8 cores total unshielded)

Itā€™s definitely not been a cheap build, mainly due to components shortage. Here in Italy Threadripper parts were even less available, and I liked the romed6u pci express expansion capabilities

Now off with the next project: bringing the network to 10gbit and running some VMs off of Freenas :slight_smile:

1 Like

Update ā€¦
Exchanged the 5700xt with a 3070ti, added two 4tb Samsung qlc SSD in raid1/zfs, exchanged one zoom audio interface with a Roland ua-25 and today I also swapped the Frankenstein cases with a proper one, had some major grounding issues with the old one (at least thatā€™s what I told the wifeā€¦ not sure if the issue is because of the case butā€¦) And finally found a safe/stable position for the slimsas extensions

In hindsight, could have gone with a new case from the beginning and a full ATX Mobo, but that ship has sailed with the associated budgetā€¦





[Processing: IMG_20211217_155626.jpgā€¦](And

This is a super interesting build!

Iā€™m interested in your SlimSAS->USB solution, as I am planning to try the new 8dimm-version of the same(ish) motherboard, and I expect to be short on exactly one USB-controller for passthrough. The three x16 slots will all be accounted for by other stuff - the drawback of going small.

What I need is two (or more) IOMMU-separable USB-controllers, so that one can be given to a VM and the other can stay in the host. Just to be sure that the problem is what I think: can you confirm that you could not find two IOMMU-separable USB ports on the ROMED6U motherboard, that also map to different ports (i.e. so that one becomes available for passthrough)?

Because I need only two. It is a bit confusing, as there seems to be two IOMMU-separable controllers on the EPYC IO die (your 05:00.3 and 44:00.3 if I read your lspci -tv right). I have the corresponding two controllers on my Supermicro H12SSL-base EPYC system, and they end up in different IOMMU groups, but both seem to map to the same couple of physical ports.

(H12SSL also has an onboard ASMedia controller that can be used for passthrough, but there is afaik nothing like that on the ROMED*U boards).

Hi,
I can confirm the two controllers on the ROMEd6 board are separate, both in the PCI hierarchy and in different IOMMU groups, without any special patching/config.
The reason I went with the PCI USB cards over the SLimSas extension is that the ASMEdia are not seen by OSX and have worse latency for audio in Windows ā€¦
I also tried a Sonnet Allegro Pro USB 3.1 PCIe Card, that has four USB controllers on board (and costs a fortune) but I couldnā€™t even have it working on the host, far less in the VMs when passed through ā€¦ looks like a firmware (of the card) issue but I just went with the dedicated cards as they work.
In theory, if you can find a board that supports it, you could use one slimsas connection to two PciEx4 slots, and would hence need only one cable but at the time the ones I have used were the only boards I could find that accept a slimsa input ā€¦

root@pve:~# lspci -tv
-+-[0000:c0]-+-00.0  Advanced Micro Devices, Inc. [AMD] Starship/Matisse Root Complex
 +-[0000:80]-+-00.0  Advanced Micro Devices, Inc. [AMD] Starship/Matisse Root Complex
 |           +-00.2  Advanced Micro Devices, Inc. [AMD] Starship/Matisse IOMMU
 |           +-01.0  Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge
 |           +-01.1-[81]----00.0  Fresco Logic FL1100 USB 3.0 Host Controller
 +-[0000:40]-+-00.0  Advanced Micro Devices, Inc. [AMD] Starship/Matisse Root Complex
 |           +-00.2  Advanced Micro Devices, Inc. [AMD] Starship/Matisse IOMMU
 |           +-01.0  Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge
 |           +-01.2-[41]----00.0  Fresco Logic FL1100 USB 3.0 Host Controller
 |           |            \-00.2  Advanced Micro Devices, Inc. [AMD] Starship/Matisse PTDMA
 |           +-08.0  Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge
 |           +-08.1-[44]--+-00.0  Advanced Micro Devices, Inc. [AMD] Starship/Matisse Reserved SPP
 |           |            +-00.1  Advanced Micro Devices, Inc. [AMD] Starship/Matisse Cryptographic Coprocessor PSPCPP
 |           |            +-00.2  Advanced Micro Devices, Inc. [AMD] Starship/Matisse PTDMA
 |           |            \-00.3  Advanced Micro Devices, Inc. [AMD] Starship USB 3.0 Host Controller
 \-[0000:00]-+-00.0  Advanced Micro Devices, Inc. [AMD] Starship/Matisse Root Complex
             +-08.0  Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge
             +-08.1-[04]--+-00.0  Advanced Micro Devices, Inc. [AMD] Starship/Matisse Reserved SPP
             |            +-00.2  Advanced Micro Devices, Inc. [AMD] Starship/Matisse PTDMA
             |            \-00.3  Advanced Micro Devices, Inc. [AMD] Starship USB 3.0 Host Controller

Iommu list:

root@pve:~# ./iommulist.sh
IOMMU Group 0 c0:01.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge [1022:1482]
IOMMU Group 10 c0:08.1 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse Internal PCIe GPP Bridge 0 to bus[E:B] [1022:1484]
IOMMU Group 11 c1:00.0 VGA compatible controller [0300]: NVIDIA Corporation GA104 [GeForce RTX 3070 Ti] [10de:2482] (rev a1)
IOMMU Group 11 c1:00.1 Audio device [0403]: NVIDIA Corporation GA104 High Definition Audio Controller [10de:228b] (rev a1)
IOMMU Group 12 c3:00.0 Non-Essential Instrumentation [1300]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Function [1022:148a]
IOMMU Group 13 c3:00.2 Encryption controller [1080]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PTDMA [1022:1498]
IOMMU Group 14 c4:00.0 Non-Essential Instrumentation [1300]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse Reserved SPP [1022:1485]
IOMMU Group 15 c4:00.2 Encryption controller [1080]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PTDMA [1022:1498]
IOMMU Group 16 80:01.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge [1022:1482]
IOMMU Group 17 80:01.1 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse GPP Bridge [1022:1483]
IOMMU Group 18 80:01.3 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse GPP Bridge [1022:1483]
IOMMU Group 19 80:01.4 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse GPP Bridge [1022:1483]
IOMMU Group 1 c0:01.1 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse GPP Bridge [1022:1483]
IOMMU Group 20 80:01.5 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse GPP Bridge [1022:1483]
IOMMU Group 21 80:01.6 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse GPP Bridge [1022:1483]
IOMMU Group 22 80:02.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge [1022:1482]
IOMMU Group 23 80:03.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge [1022:1482]
IOMMU Group 24 80:04.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge [1022:1482]
IOMMU Group 25 80:05.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge [1022:1482]
IOMMU Group 26 80:07.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge [1022:1482]
IOMMU Group 27 80:07.1 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse Internal PCIe GPP Bridge 0 to bus[E:B] [1022:1484]
IOMMU Group 28 80:08.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge [1022:1482]
IOMMU Group 29 80:08.1 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse Internal PCIe GPP Bridge 0 to bus[E:B] [1022:1484]
IOMMU Group 2 c0:02.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge [1022:1482]
IOMMU Group 30 80:08.2 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse Internal PCIe GPP Bridge 0 to bus[E:B] [1022:1484]
IOMMU Group 31 80:08.3 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse Internal PCIe GPP Bridge 0 to bus[E:B] [1022:1484]
IOMMU Group 32 81:00.0 USB controller [0c03]: Fresco Logic FL1100 USB 3.0 Host Controller [1b73:1100] (rev 10)
IOMMU Group 33 82:00.0 Ethernet controller [0200]: Intel Corporation Ethernet Controller X710 for 10GBASE-T [8086:15ff] (rev 02)
IOMMU Group 34 82:00.1 Ethernet controller [0200]: Intel Corporation Ethernet Controller X710 for 10GBASE-T [8086:15ff] (rev 02)
IOMMU Group 35 84:00.0 Ethernet controller [0200]: Intel Corporation I210 Gigabit Network Connection [8086:1533] (rev 03)
IOMMU Group 36 85:00.0 Ethernet controller [0200]: Intel Corporation I210 Gigabit Network Connection [8086:1533] (rev 03)
IOMMU Group 37 86:00.0 PCI bridge [0604]: ASPEED Technology, Inc. AST1150 PCI-to-PCI Bridge [1a03:1150] (rev 04)
IOMMU Group 37 87:00.0 VGA compatible controller [0300]: ASPEED Technology, Inc. ASPEED Graphics Family [1a03:2000] (rev 41)
IOMMU Group 38 88:00.0 Non-Essential Instrumentation [1300]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Function [1022:148a]
IOMMU Group 39 88:00.2 Encryption controller [1080]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PTDMA [1022:1498]
IOMMU Group 3 c0:03.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge [1022:1482]
IOMMU Group 40 89:00.0 Non-Essential Instrumentation [1300]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse Reserved SPP [1022:1485]
IOMMU Group 41 89:00.2 Encryption controller [1080]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PTDMA [1022:1498]
IOMMU Group 42 8a:00.0 SATA controller [0106]: Advanced Micro Devices, Inc. [AMD] FCH SATA Controller [AHCI mode] [1022:7901] (rev 51)
IOMMU Group 43 8b:00.0 SATA controller [0106]: Advanced Micro Devices, Inc. [AMD] FCH SATA Controller [AHCI mode] [1022:7901] (rev 51)
IOMMU Group 44 40:01.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge [1022:1482]
IOMMU Group 45 40:01.2 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse GPP Bridge [1022:1483]
IOMMU Group 46 40:02.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge [1022:1482]
IOMMU Group 47 40:03.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge [1022:1482]
IOMMU Group 48 40:03.1 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse GPP Bridge [1022:1483]
IOMMU Group 49 40:04.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge [1022:1482]
IOMMU Group 4 c0:03.2 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse GPP Bridge [1022:1483]
IOMMU Group 50 40:05.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge [1022:1482]
IOMMU Group 51 40:07.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge [1022:1482]
IOMMU Group 52 40:07.1 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse Internal PCIe GPP Bridge 0 to bus[E:B] [1022:1484]
IOMMU Group 53 40:08.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge [1022:1482]
IOMMU Group 54 40:08.1 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse Internal PCIe GPP Bridge 0 to bus[E:B] [1022:1484]
IOMMU Group 55 40:08.2 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse Internal PCIe GPP Bridge 0 to bus[E:B] [1022:1484]
IOMMU Group 56 40:08.3 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse Internal PCIe GPP Bridge 0 to bus[E:B] [1022:1484]
IOMMU Group 57 41:00.0 USB controller [0c03]: Fresco Logic FL1100 USB 3.0 Host Controller [1b73:1100] (rev 10)
IOMMU Group 58 42:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Baffin [Radeon Pro WX 4130/4150] [1002:67e8] (rev 80)
IOMMU Group 58 42:00.1 Audio device [0403]: Advanced Micro Devices, Inc. [AMD/ATI] Baffin HDMI/DP Audio [Radeon RX 550 640SP / RX 560/560X] [1002:aae0]
IOMMU Group 59 43:00.0 Non-Essential Instrumentation [1300]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Function [1022:148a]
IOMMU Group 5 c0:04.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge [1022:1482]
IOMMU Group 60 43:00.2 Encryption controller [1080]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PTDMA [1022:1498]
IOMMU Group 61 44:00.0 Non-Essential Instrumentation [1300]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse Reserved SPP [1022:1485]
IOMMU Group 62 44:00.1 Encryption controller [1080]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse Cryptographic Coprocessor PSPCPP [1022:1486]
IOMMU Group 63 44:00.2 Encryption controller [1080]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PTDMA [1022:1498]
IOMMU Group 64 44:00.3 USB controller [0c03]: Advanced Micro Devices, Inc. [AMD] Starship USB 3.0 Host Controller [1022:148c]
IOMMU Group 65 45:00.0 SATA controller [0106]: Advanced Micro Devices, Inc. [AMD] FCH SATA Controller [AHCI mode] [1022:7901] (rev 51)
IOMMU Group 66 46:00.0 SATA controller [0106]: Advanced Micro Devices, Inc. [AMD] FCH SATA Controller [AHCI mode] [1022:7901] (rev 51)
IOMMU Group 67 00:01.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge [1022:1482]
IOMMU Group 68 00:01.1 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse GPP Bridge [1022:1483]
IOMMU Group 69 00:02.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge [1022:1482]
IOMMU Group 6 c0:05.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge [1022:1482]
IOMMU Group 70 00:03.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge [1022:1482]
IOMMU Group 71 00:03.2 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse GPP Bridge [1022:1483]
IOMMU Group 72 00:04.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge [1022:1482]
IOMMU Group 73 00:05.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge [1022:1482]
IOMMU Group 74 00:07.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge [1022:1482]
IOMMU Group 75 00:07.1 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse Internal PCIe GPP Bridge 0 to bus[E:B] [1022:1484]
IOMMU Group 76 00:08.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge [1022:1482]
IOMMU Group 77 00:08.1 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse Internal PCIe GPP Bridge 0 to bus[E:B] [1022:1484]
IOMMU Group 78 00:14.0 SMBus [0c05]: Advanced Micro Devices, Inc. [AMD] FCH SMBus Controller [1022:790b] (rev 61)
IOMMU Group 78 00:14.3 ISA bridge [0601]: Advanced Micro Devices, Inc. [AMD] FCH LPC Bridge [1022:790e] (rev 51)
IOMMU Group 79 00:18.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship Device 24; Function 0 [1022:1490]
IOMMU Group 79 00:18.1 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship Device 24; Function 1 [1022:1491]
IOMMU Group 79 00:18.2 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship Device 24; Function 2 [1022:1492]
IOMMU Group 79 00:18.3 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship Device 24; Function 3 [1022:1493]
IOMMU Group 79 00:18.4 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship Device 24; Function 4 [1022:1494]
IOMMU Group 79 00:18.5 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship Device 24; Function 5 [1022:1495]
IOMMU Group 79 00:18.6 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship Device 24; Function 6 [1022:1496]
IOMMU Group 79 00:18.7 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship Device 24; Function 7 [1022:1497]
IOMMU Group 7 c0:07.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge [1022:1482]
IOMMU Group 80 01:00.0 Non-Volatile memory controller [0108]: Samsung Electronics Co Ltd NVMe SSD Controller SM981/PM981/PM983 [144d:a808]
IOMMU Group 81 02:00.0 Non-Volatile memory controller [0108]: Sandisk Corp WD Black NVMe SSD [15b7:5001]
IOMMU Group 82 03:00.0 Non-Essential Instrumentation [1300]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Function [1022:148a]
IOMMU Group 83 03:00.2 Encryption controller [1080]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PTDMA [1022:1498]
IOMMU Group 84 04:00.0 Non-Essential Instrumentation [1300]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse Reserved SPP [1022:1485]
IOMMU Group 85 04:00.2 Encryption controller [1080]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PTDMA [1022:1498]
IOMMU Group 86 04:00.3 USB controller [0c03]: Advanced Micro Devices, Inc. [AMD] Starship USB 3.0 Host Controller [1022:148c]
IOMMU Group 8 c0:07.1 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse Internal PCIe GPP Bridge 0 to bus[E:B] [1022:1484]
IOMMU Group 9 c0:08.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge [1022:1482]

The Asrock Board has two USB ports in the back, and two routed to the internal USB3 connector, for which you need a separate cable (I connected them to my case USB embedded ports)

Thanks, the ā€œStarshipā€ USB controllers (I assume they are on-die) are separate on my SM board too. I can send them separately to VMs, but only one of them seems to be associated with a specific port. If I assign the second one to a Windows VM it gets detected, but none of the physical USB ports seems to belong to it. Perhaps the ports are managed by the first one, and the second one only gets to handle devices through the first somehow.

Now Iā€™m confused, as I donā€™t see any ASMedia USB chip in your IOMMU list or in the block diagram for your mainboard. Are you referring to an add-in card?

My H12SSL has an ASMedia chip that controls 4 physical USB ports (2 back + 2 by header), in addition to the Starship controllers associated with the two remaining physical ports (at the back).

This is a difference between the ASrock board and my H12SSL, I have only two of the back ports associated with the on-die USB controllers. The remaining ports go with the ASMedia controller.

I guess my question then becomes: can you connect to the on-die (ā€œStarshipā€) controllers independently, by simply plugging things in the different USB ports? I canā€™t, but maybe you can as you have more ports.

For reference, here is how it looks on H12SSL:

$ lspci -nn | grep -i usb
04:00.3 USB controller [0c03]: Advanced Micro Devices, Inc. [AMD] Starship USB 3.0 Host Controller [1022:148c]
41:00.0 USB controller [0c03]: ASMedia Technology Inc. ASM1042A USB 3.0 Host Controller [1b21:1142]
42:00.0 USB controller [0c03]: ASMedia Technology Inc. ASM1042A USB 3.0 Host Controller [1b21:1142]
45:00.3 USB controller [0c03]: Advanced Micro Devices, Inc. [AMD] Starship USB 3.0 Host Controller [1022:148c]
Block diagram

  1. ā€œStarshipā€ controllers on IO die
  2. External ASMedia USB controller chip

There is also the ā€œCPU USB2ā€ orange line, which seems to go between CPU and BMC and is not connected to any external port afaik.

lspci -tv
-+-[0000:c0]-+-00.0  Advanced Micro Devices, Inc. [AMD] Starship/Matisse Root Complex
 |           +-00.2  Advanced Micro Devices, Inc. [AMD] Starship/Matisse IOMMU
 |           +-01.0  Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge
 |           +-01.1-[c1]--+-00.0  NVIDIA Corporation Device 24b0
 |           |            \-00.1  NVIDIA Corporation Device 228b
 |           +-02.0  Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge
 |           +-03.0  Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge
 |           +-04.0  Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge
 |           +-05.0  Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge
 |           +-07.0  Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge
 |           +-07.1-[c2]--+-00.0  Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Function
 |           |            \-00.2  Advanced Micro Devices, Inc. [AMD] Starship/Matisse PTDMA
 |           +-08.0  Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge
 |           \-08.1-[c3]--+-00.0  Advanced Micro Devices, Inc. [AMD] Starship/Matisse Reserved SPP
 |                        \-00.2  Advanced Micro Devices, Inc. [AMD] Starship/Matisse PTDMA
 +-[0000:80]-+-00.0  Advanced Micro Devices, Inc. [AMD] Starship/Matisse Root Complex
 |           +-00.2  Advanced Micro Devices, Inc. [AMD] Starship/Matisse IOMMU
 |           +-01.0  Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge
 |           +-01.1-[81]----00.0  Sandisk Corp Device 5011
 |           +-01.2-[82]----00.0  Sandisk Corp Device 5011
 |           +-01.3-[83]----00.0  Sandisk Corp Device 5011
 |           +-01.4-[84]----00.0  Sandisk Corp Device 5011
 |           +-02.0  Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge
 |           +-03.0  Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge
 |           +-04.0  Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge
 |           +-05.0  Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge
 |           +-07.0  Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge
 |           +-07.1-[85]--+-00.0  Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Function
 |           |            \-00.2  Advanced Micro Devices, Inc. [AMD] Starship/Matisse PTDMA
 |           +-08.0  Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge
 |           +-08.1-[86]--+-00.0  Advanced Micro Devices, Inc. [AMD] Starship/Matisse Reserved SPP
 |           |            \-00.2  Advanced Micro Devices, Inc. [AMD] Starship/Matisse PTDMA
 |           +-08.2-[87]----00.0  Advanced Micro Devices, Inc. [AMD] FCH SATA Controller [AHCI mode]
 |           \-08.3-[88]----00.0  Advanced Micro Devices, Inc. [AMD] FCH SATA Controller [AHCI mode]
 +-[0000:40]-+-00.0  Advanced Micro Devices, Inc. [AMD] Starship/Matisse Root Complex
 |           +-00.2  Advanced Micro Devices, Inc. [AMD] Starship/Matisse IOMMU
 |           +-01.0  Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge
 |           +-02.0  Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge
 |           +-03.0  Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge
 |           +-03.3-[41]----00.0  ASMedia Technology Inc. ASM1042A USB 3.0 Host Controller
 |           +-03.5-[42]----00.0  ASMedia Technology Inc. ASM1042A USB 3.0 Host Controller
 |           +-03.6-[43]--+-00.0  Broadcom Inc. and subsidiaries NetXtreme BCM5720 2-port Gigabit Ethernet PCIe
 |           |            \-00.1  Broadcom Inc. and subsidiaries NetXtreme BCM5720 2-port Gigabit Ethernet PCIe
 |           +-04.0  Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge
 |           +-05.0  Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge
 |           +-07.0  Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge
 |           +-07.1-[44]--+-00.0  Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Function
 |           |            \-00.2  Advanced Micro Devices, Inc. [AMD] Starship/Matisse PTDMA
 |           +-08.0  Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge
 |           +-08.1-[45]--+-00.0  Advanced Micro Devices, Inc. [AMD] Starship/Matisse Reserved SPP
 |           |            +-00.1  Advanced Micro Devices, Inc. [AMD] Starship/Matisse Cryptographic Coprocessor PSPCPP
 |           |            +-00.2  Advanced Micro Devices, Inc. [AMD] Starship/Matisse PTDMA
 |           |            \-00.3  Advanced Micro Devices, Inc. [AMD] Starship USB 3.0 Host Controller
 |           +-08.2-[46]----00.0  Advanced Micro Devices, Inc. [AMD] FCH SATA Controller [AHCI mode]
 |           \-08.3-[47]----00.0  Advanced Micro Devices, Inc. [AMD] FCH SATA Controller [AHCI mode]
 \-[0000:00]-+-00.0  Advanced Micro Devices, Inc. [AMD] Starship/Matisse Root Complex
             +-00.2  Advanced Micro Devices, Inc. [AMD] Starship/Matisse IOMMU
             +-01.0  Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge
             +-01.1-[01]--+-00.0  Advanced Micro Devices, Inc. [AMD/ATI] Lexa PRO [Radeon 540/540X/550/550X / RX 540X/550/550X]
             |            \-00.1  Advanced Micro Devices, Inc. [AMD/ATI] Baffin HDMI/DP Audio [Radeon RX 550 640SP / RX 560/560X]
             +-02.0  Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge
             +-03.0  Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge
             +-03.4-[02]----00.0  Phison Electronics Corporation Device 5018
             +-04.0  Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge
             +-05.0  Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge
             +-07.0  Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge
             +-07.1-[03]--+-00.0  Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Function
             |            \-00.2  Advanced Micro Devices, Inc. [AMD] Starship/Matisse PTDMA
             +-08.0  Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge
             +-08.1-[04]--+-00.0  Advanced Micro Devices, Inc. [AMD] Starship/Matisse Reserved SPP
             |            +-00.2  Advanced Micro Devices, Inc. [AMD] Starship/Matisse PTDMA
             |            \-00.3  Advanced Micro Devices, Inc. [AMD] Starship USB 3.0 Host Controller
             +-14.0  Advanced Micro Devices, Inc. [AMD] FCH SMBus Controller
             +-14.3  Advanced Micro Devices, Inc. [AMD] FCH LPC Bridge
             +-18.0  Advanced Micro Devices, Inc. [AMD] Starship Device 24; Function 0
             +-18.1  Advanced Micro Devices, Inc. [AMD] Starship Device 24; Function 1
             +-18.2  Advanced Micro Devices, Inc. [AMD] Starship Device 24; Function 2
             +-18.3  Advanced Micro Devices, Inc. [AMD] Starship Device 24; Function 3
             +-18.4  Advanced Micro Devices, Inc. [AMD] Starship Device 24; Function 4
             +-18.5  Advanced Micro Devices, Inc. [AMD] Starship Device 24; Function 5
             +-18.6  Advanced Micro Devices, Inc. [AMD] Starship Device 24; Function 6
             \-18.7  Advanced Micro Devices, Inc. [AMD] Starship Device 24; Function 7

s/Asmedia/Starship/

sorry
not enough coffee today to completely engage the brain

1 Like

Ok Iā€™m with you, thanks!

And of course Iā€™m not expecting you to test things for me, Iā€™m merely curious whether you already tried and/or succeeded to use the two starship usb controllers with different physical ports.

I can pass through either one of them to a VM, but I just realized the internal one is not connected to my case after all, I moved these connection to one of the FL1100 internal ports to have easy access to them in OSX ā€¦ so I am not able to make sure they work as expected.
I can successfully boot two VMs with a Starship device passed through, proxmox correctly unbinds the xhci_hcd module and binds vfio. When the VMs are shut down I can re-bind the controllers to the proper driver and they will revert control to the host ā€¦

I see! I could do all these things too, I just couldnā€™t get the second (higher PCI address) Starship controller to get through to any of my physical USB ports. Which made me suspect it is not independent from the other on my SM mobo, at least not with my 7252 CPU (which is admittedly a down-sized ROME part, though I donā€™t think the IO dice differ between the chips).

One possibility is that both controllers are functional, but only one controls the physical ports, but can hand off connected devices to the other controller if needed. Just speculation.

Anyway, Iā€™m likely to get the ASRock mobo in a week or so, then I will soon test whether both starships have associated ports. If they donā€™t, and I stick to my plan to make this system my passthrough-workstation, then Iā€™d try something similar to your cable solution.

Another question - when you replaced the TT cases, did you look for a new mATX case first, without finding a good alternative for your combination of hardware? Or did you decide from start to go with ATX?

Not really, the epyc processor generates a lot of heat, add in a 3070 and an another amd gpu, plus the X710 chipsets and I felt the need to go with a bigger case with more space in it.
If I had to do it again, and not considering the pci slot options, Iā€™d go with a full ATX solution ā€¦

1 Like

I see your point. Iā€™m sort of considering the opposite direction, I have a ATX-based EPYC system, but considering to move it to mATX while at the same time going from a 120w to a 200w CPU. Maybe itā€™s not a good idea at all. The rest of my power budget is slightly lower than yours I think - 1 A4000 (140w) and 1 amd gpro 4300 (50w) + some nvme:s. I would at least need to select my casing carefully.

If I end up needing a cable-attached USB controller, Iā€™m considering a solution based on something like these: Delock Products 62725 Delock 2.5ā€³ Converter U.2 SFF-8639 > M.2 NVMe Key M - 7 mm + Delock Products 62843 Delock Converter M.2 Key B+M male > 2 x USB 3.0 Pin Header + SFF-8654->SFF8639 cable. Then at least I wonā€™t need another card slot.

Hi @MadMatt

Really curious as to how you got the GPUā€™s to pas through to a VM. I have the same board with Epyc 7232P CPU.

I have been having a hell of a time to get GPU and built in SATA controllers to pass through in ESXi and Proxmox.

After messing with things for 2 months and taking a break from it. I found this article an article on Reddit about ā€œiommu not working with amd sata controllersā€ with the exact same CPU and board.

Seems like using the SATA controllers will not work currently. But since you have GPU pass through working. Was wondering if you have that documented somewhere?

Thanks

Hi, no particular issues with the GPUs, followed the proxmox-vfio docs at:
https://pve.proxmox.com/wiki/Pci_passthrough
and had no issues with either AMD or Nvidia based cards
I am not passing through, and have never tried to, Sata controllers.
I used to pass through to my Osx VM and Windows VM dedicated NVME drives, off a 2 slot Nvme adapter, using bifurcation, but moved to passing through normal virtual disks so that I could manage/protect them with ZFS snapshots

If the reddit post you are talking about is this one:

then a fix has been posted, will need to recompile the kernel though ā€¦

OK thanks Iā€™ll take a look at the proxmox docs

Yes thatā€™s the one. I couldnā€™t post the link, new account on here.

Iā€™m not new to linux, but have been out of the daily usage and working in command line for a decade or so. Doing a kernel recompile is not something Iā€™m looking forward to. I may enlist some help from a friend local to me.

Thanks

1 Like