AMD Ryzen 7 1700X Linux Benchmarks

  • Thread starter Patrick Kennedy
  • Start date
Notice: Page may contain affiliate links for which we may earn a small commission through services like Amazon Affiliates or Skimlinks.

chpio

New Member
Mar 4, 2017
4
2
3
37
I am also interested in virtualization with PCIe passthrough. I'd like to know if Ryzen AM4 motherboards have a proper IOMMU isolation (PCIe ACS support).
If enough people with these motherboards could run the following one liner and say which motherboard they have, we could get a better idea.

To get the list of pci devices group by the iommu group, run this one liner:
IOMMU_GROUPS="/sys/kernel/iommu_groups"; for IOMMU_GROUP in $(ls $IOMMU_GROUPS); do echo IOMMU Group $GROUP; for DEVICE in $(find $IOMMU_GROUPS/$IOMMU_GROUP/devices -maxdepth 1 -type l); do VID="$(cat $DEVICE/vendor | cut -c 3-)"; DID="$(cat $DEVICE/device | cut -c 3-)"; echo " [$VID:$DID] $(lspci -Dd $VID:$DID)"; done; echo; done

If you have enough PCIe devices, try to get all PCIe ports filled up prioritizing maybe the PCIe 3.0 x16 ports first.

Thanks!
 
Last edited:
  • Like
Reactions: gigatexal

herby

Active Member
Aug 18, 2013
187
53
28
I happen to be a Gentoo user myself. For Gentoo or similar systems, CFLAGS should include either "-march=haswell" or "-march=broadwell" or "-march=skylake".

Zen resembles Haswell, Broadwell or Skylake much more than Bulldozer. "-mprefer-avx128" might be useful, but we do not know that for sure yet.

The instruction set implemented by Zen is not compatible with Bulldozer, i.e. some Bulldozer instructions will cause exceptions on Zen, so you must not choose any older AMD processor for "-march=".

On the other hand, Zen implements all Skylake instructions (at least all that are used by GCC) with the exception of the Intel Transactional Synchronization Extensions. I will not miss TSE, because in my opinion they are the wrong solution for implementing concurrency.

Besides the Skylake instructions, Zen implements the 4 AMD Barcelona instructions and also the secure hash instructions that have been introduced in Intel Goldmont (e.g. Apollo Lake & Denverton) but which will be available in the mainline Intel processors only starting with Cannonlake.

Besides instructions previously used by other processors, Zen introduces 3 instructions that are very useful in my opinion, CLZERO (clears a cache line, avoiding its fetching from the main memory) and MWAITX/MONITORX, which are an improvement over MWAIT/MONITOR, because they may include a timeout, to avoid an endless waiting.


So choosing a recent Intel architecture in GCC should be OK and you would lose very little, because the support for "znver1" optimizations is far from finished.
Oh no, I wonder what kind of CPU masking I'll need to do to put Ryzen and Piledriver in a Xenserver pool together.

According to CPU world
Ryzen 1700X (Xen) Features:
  • MMX instructions
  • Extensions to MMX
  • SSE / Streaming SIMD Extensions
  • SSE2 / Streaming SIMD Extensions 2
  • SSE3 / Streaming SIMD Extensions 3
  • SSSE3 / Supplemental Streaming SIMD Extensions 3
  • SSE4 / SSE4.1 + SSE4.2 / Streaming SIMD Extensions 4 ?
  • SSE4a ? [1]
  • AES / Advanced Encryption Standard instructions
  • AVX / Advanced Vector Extensions
  • AVX2 / Advanced Vector Extensions 2.0
  • BMI / BMI1 + BMI2 / Bit Manipulation instructions
  • SHA / Secure Hash Algorithm extensions
  • F16C / 16-bit Floating-Point conversion instructions
  • AMD64 / AMD 64-bit technology ?
  • SMAP / Supervisor Mode Access Prevention
  • SMEP
  • Precision Boost
  • Extended Frequency Range
  • SMT / Simultaneous MultiThreading

Opteron 4332 HE (Piledriver) Features:
  • MMX instructions
  • SSE / Streaming SIMD Extensions
  • SSE2 / Streaming SIMD Extensions 2
  • SSE3 / Streaming SIMD Extensions 3
  • SSSE3 / Supplemental Streaming SIMD Extensions 3
  • SSE4 / SSE4.1 + SSE4.2 / Streaming SIMD Extensions 4 ?
  • SSE4a ?
  • AES / Advanced Encryption Standard instructions
  • AVX / Advanced Vector Extensions
  • BMI1 / Bit Manipulation instructions 1
  • F16C / 16-bit Floating-Point conversion instructions
  • FMA3 / 3-operand Fused Multiply-Add instructions
  • FMA4 / 4-operand Fused Multiply-Add instructions
  • TBM / Trailing Bit Manipulation instructions
  • XOP / eXtended Operations instructions
  • AMD64 / AMD 64-bit technology ?
  • AMD-V 2.0 / AMD Virtualization technology 2.0
  • EVP / Enhanced Virus Protection ?
  • Turbo Core 2.0 technology

Edit: After staring at the two list for a bit I just nocticed no AMD-V for at least this Ryzen. :(
 
Last edited:

chpio

New Member
Mar 4, 2017
4
2
3
37
I have posted lscpu output. All 3 launch Ryzen have AMD V
Thanks for all the info you've posted. You have also posted lspci output but by itself we have no idea if the IOMMU isolation is working.

If you could, can you please post the output of the one-liner I posted here? The first column will be the IOMMU group preceding the lspci output. If the PCIe devices you have connected start with a different number (IOMMU group) then isolation is working.
 

Patrick

Administrator
Staff member
Dec 21, 2010
12,513
5,804
113
Code:
# IFS=$'\n'; a=(`find /sys/kernel/iommu_groups/ -type l | tr '/' ' ' | awk '{print $NF,$0}' - | sort | cut -f2- -d' ' | tr ' ' '/'`); b=(`lspci | sort`); for ((i=0;i<${#a[@]};++i)); do printf "%s %s\n" "${a} ${b}";done | tr '/' '\t' | cut -f 5,7-
0       0000:00:01.0 00:00.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 1450
0       0000:00:01.0 00:00.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 1450
0       0000:00:01.0 00:00.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 1450
0       0000:00:01.0 00:00.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 1450
0       0000:00:01.0 00:00.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 1450
0       0000:00:01.0 00:00.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 1450
0       0000:00:01.0 00:00.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 1450
0       0000:00:01.0 00:00.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 1450
0       0000:00:01.0 00:00.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 1450
0       0000:00:01.0 00:00.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 1450
0       0000:00:01.0 00:00.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 1450
0       0000:00:01.0 00:00.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 1450
0       0000:00:01.0 00:00.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 1450
0       0000:00:01.0 00:00.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 1450
0       0000:00:01.0 00:00.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 1450
0       0000:00:01.0 00:00.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 1450
0       0000:00:01.0 00:00.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 1450
0       0000:00:01.0 00:00.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 1450
0       0000:00:01.0 00:00.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 1450
0       0000:00:01.0 00:00.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 1450
0       0000:00:01.0 00:00.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 1450
0       0000:00:01.0 00:00.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 1450
0       0000:00:01.0 00:00.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 1450
0       0000:00:01.0 00:00.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 1450
0       0000:00:01.0 00:00.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 1450
0       0000:00:01.0 00:00.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 1450
0       0000:00:01.0 00:00.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 1450
0       0000:00:01.0 00:00.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 1450
0       0000:00:01.0 00:00.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 1450
0       0000:00:01.0 00:00.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 1450
0       0000:00:01.0 00:00.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 1450
0       0000:00:01.0 00:00.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 1450
0       0000:00:01.0 00:00.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 1450
0       0000:00:01.0 00:00.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 1450
0       0000:00:01.0 00:00.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 1450
0       0000:00:01.0 00:00.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 1450
0       0000:00:01.0 00:00.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 1450
0       0000:00:01.0 00:00.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 1450
0       0000:00:01.0 00:00.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 1450
0       0000:00:01.0 00:00.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 1450
0       0000:00:01.0 00:00.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 1450
No bueno. ASUS Prime B350-Plus
 

Patrick

Administrator
Staff member
Dec 21, 2010
12,513
5,804
113
Likely relevant, here is the lspci -vt on that one:
Code:
# lspci -vt
-[0000:00]-+-00.0  Advanced Micro Devices, Inc. [AMD] Device 1450
           +-00.2  Advanced Micro Devices, Inc. [AMD] Device 1451
           +-01.0  Advanced Micro Devices, Inc. [AMD] Device 1452
           +-01.3-[03-24]--+-00.0  Advanced Micro Devices, Inc. [AMD] Device 43bb
           |               +-00.1  Advanced Micro Devices, Inc. [AMD] Device 43b7
           |               \-00.2-[1d-24]--+-00.0-[1e]----00.0  Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller
           |                               +-01.0-[1f-20]----00.0-[20]--
           |                               +-04.0-[21]--+-00.0  NVIDIA Corporation GK208 [GeForce GT 710B]
           |                               |            \-00.1  NVIDIA Corporation GK208 HDMI/DP Audio Controller
           |                               +-06.0-[23]----00.0  Intel Corporation 82572EI Gigabit Ethernet Controller (Copper)
           |                               \-07.0-[24]--
           +-02.0  Advanced Micro Devices, Inc. [AMD] Device 1452
           +-03.0  Advanced Micro Devices, Inc. [AMD] Device 1452
           +-03.1-[25]--+-00.0  Intel Corporation Ethernet Controller XL710 for 40GbE QSFP+
           |            \-00.1  Intel Corporation Ethernet Controller XL710 for 40GbE QSFP+
           +-04.0  Advanced Micro Devices, Inc. [AMD] Device 1452
           +-07.0  Advanced Micro Devices, Inc. [AMD] Device 1452
           +-07.1-[26]--+-00.0  Advanced Micro Devices, Inc. [AMD] Device 145a
           |            +-00.2  Advanced Micro Devices, Inc. [AMD] Device 1456
           |            \-00.3  Advanced Micro Devices, Inc. [AMD] Device 145c
           +-08.0  Advanced Micro Devices, Inc. [AMD] Device 1452
           +-08.1-[27]--+-00.0  Advanced Micro Devices, Inc. [AMD] Device 1455
           |            +-00.2  Advanced Micro Devices, Inc. [AMD] FCH SATA Controller [AHCI mode]
           |            \-00.3  Advanced Micro Devices, Inc. [AMD] Device 1457
           +-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] Device 1460
           +-18.1  Advanced Micro Devices, Inc. [AMD] Device 1461
           +-18.2  Advanced Micro Devices, Inc. [AMD] Device 1462
           +-18.3  Advanced Micro Devices, Inc. [AMD] Device 1463
           +-18.4  Advanced Micro Devices, Inc. [AMD] Device 1464
           +-18.5  Advanced Micro Devices, Inc. [AMD] Device 1465
           +-18.6  Advanced Micro Devices, Inc. [AMD] Device 1466
           \-18.7  Advanced Micro Devices, Inc. [AMD] Device 1467
 

chpio

New Member
Mar 4, 2017
4
2
3
37
I need to correct my one-liner, what is the output of this:
lspci; find /sys/kernel/iommu_groups/ -type l
 
Last edited:

Patrick

Administrator
Staff member
Dec 21, 2010
12,513
5,804
113
@chpio here you go:
Code:
# lspci; find /sys/kernel/iommu_groups/ -type l
00:00.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 1450
00:00.2 IOMMU: Advanced Micro Devices, Inc. [AMD] Device 1451
00:01.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 1452
00:01.3 PCI bridge: Advanced Micro Devices, Inc. [AMD] Device 1453
00:02.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 1452
00:03.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 1452
00:03.1 PCI bridge: Advanced Micro Devices, Inc. [AMD] Device 1453
00:04.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 1452
00:07.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 1452
00:07.1 PCI bridge: Advanced Micro Devices, Inc. [AMD] Device 1454
00:08.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 1452
00:08.1 PCI bridge: Advanced Micro Devices, Inc. [AMD] Device 1454
00:14.0 SMBus: Advanced Micro Devices, Inc. [AMD] FCH SMBus Controller (rev 59)
00:14.3 ISA bridge: Advanced Micro Devices, Inc. [AMD] FCH LPC Bridge (rev 51)
00:18.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 1460
00:18.1 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 1461
00:18.2 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 1462
00:18.3 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 1463
00:18.4 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 1464
00:18.5 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 1465
00:18.6 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 1466
00:18.7 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 1467
03:00.0 USB controller: Advanced Micro Devices, Inc. [AMD] Device 43bb (rev 02)
03:00.1 SATA controller: Advanced Micro Devices, Inc. [AMD] Device 43b7 (rev 02)
03:00.2 PCI bridge: Advanced Micro Devices, Inc. [AMD] Device 43b2 (rev 02)
1d:00.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] Device 43b4 (rev 02)
1d:01.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] Device 43b4 (rev 02)
1d:04.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] Device 43b4 (rev 02)
1d:06.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] Device 43b4 (rev 02)
1d:07.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] Device 43b4 (rev 02)
1e:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 15)
1f:00.0 PCI bridge: ASMedia Technology Inc. ASM1083/1085 PCIe to PCI Bridge (rev 04)
21:00.0 VGA compatible controller: NVIDIA Corporation GK208 [GeForce GT 710B] (rev a1)
21:00.1 Audio device: NVIDIA Corporation GK208 HDMI/DP Audio Controller (rev a1)
23:00.0 Ethernet controller: Intel Corporation 82572EI Gigabit Ethernet Controller (Copper) (rev 06)
25:00.0 Ethernet controller: Intel Corporation Ethernet Controller XL710 for 40GbE QSFP+ (rev 01)
25:00.1 Ethernet controller: Intel Corporation Ethernet Controller XL710 for 40GbE QSFP+ (rev 01)
26:00.0 Non-Essential Instrumentation [1300]: Advanced Micro Devices, Inc. [AMD] Device 145a
26:00.2 Encryption controller: Advanced Micro Devices, Inc. [AMD] Device 1456
26:00.3 USB controller: Advanced Micro Devices, Inc. [AMD] Device 145c
27:00.0 Non-Essential Instrumentation [1300]: Advanced Micro Devices, Inc. [AMD] Device 1455
27:00.2 SATA controller: Advanced Micro Devices, Inc. [AMD] FCH SATA Controller [AHCI mode] (rev 51)
27:00.3 Audio device: Advanced Micro Devices, Inc. [AMD] Device 1457
/sys/kernel/iommu_groups/7/devices/0000:00:18.6
/sys/kernel/iommu_groups/7/devices/0000:00:18.4
/sys/kernel/iommu_groups/7/devices/0000:00:18.2
/sys/kernel/iommu_groups/7/devices/0000:00:18.0
/sys/kernel/iommu_groups/7/devices/0000:00:18.7
/sys/kernel/iommu_groups/7/devices/0000:00:18.5
/sys/kernel/iommu_groups/7/devices/0000:00:18.3
/sys/kernel/iommu_groups/7/devices/0000:00:18.1
/sys/kernel/iommu_groups/5/devices/0000:27:00.3
/sys/kernel/iommu_groups/5/devices/0000:00:08.1
/sys/kernel/iommu_groups/5/devices/0000:27:00.2
/sys/kernel/iommu_groups/5/devices/0000:00:08.0
/sys/kernel/iommu_groups/5/devices/0000:27:00.0
/sys/kernel/iommu_groups/3/devices/0000:00:04.0
/sys/kernel/iommu_groups/1/devices/0000:00:02.0
/sys/kernel/iommu_groups/6/devices/0000:00:14.0
/sys/kernel/iommu_groups/6/devices/0000:00:14.3
/sys/kernel/iommu_groups/4/devices/0000:26:00.3
/sys/kernel/iommu_groups/4/devices/0000:00:07.1
/sys/kernel/iommu_groups/4/devices/0000:26:00.2
/sys/kernel/iommu_groups/4/devices/0000:26:00.0
/sys/kernel/iommu_groups/4/devices/0000:00:07.0
/sys/kernel/iommu_groups/2/devices/0000:25:00.0
/sys/kernel/iommu_groups/2/devices/0000:00:03.0
/sys/kernel/iommu_groups/2/devices/0000:25:00.1
/sys/kernel/iommu_groups/2/devices/0000:00:03.1
/sys/kernel/iommu_groups/0/devices/0000:1e:00.0
/sys/kernel/iommu_groups/0/devices/0000:1d:07.0
/sys/kernel/iommu_groups/0/devices/0000:21:00.1
/sys/kernel/iommu_groups/0/devices/0000:03:00.1
/sys/kernel/iommu_groups/0/devices/0000:00:01.3
/sys/kernel/iommu_groups/0/devices/0000:1d:00.0
/sys/kernel/iommu_groups/0/devices/0000:23:00.0
/sys/kernel/iommu_groups/0/devices/0000:1d:06.0
/sys/kernel/iommu_groups/0/devices/0000:03:00.2
/sys/kernel/iommu_groups/0/devices/0000:21:00.0
/sys/kernel/iommu_groups/0/devices/0000:03:00.0
/sys/kernel/iommu_groups/0/devices/0000:00:01.0
/sys/kernel/iommu_groups/0/devices/0000:1d:01.0
/sys/kernel/iommu_groups/0/devices/0000:1f:00.0
/sys/kernel/iommu_groups/0/devices/0000:1d:04.0
 
  • Like
Reactions: zir_blazer

zir_blazer

Active Member
Dec 5, 2016
356
128
43
Ladies and gentlemen... ASUS PRIME B350-PLUS with IOMMU Groups included.

Imgur: The most awesome images on the Internet

I forgot and noticed too late for the previous image than the Motherboard had a PCIe 4x Slot (The second 16x). The 4 PCIe Lanes actually belonged to it. Thus, what wasn't present were the PCI Bridges for the other two PCIe 1x Slots. Since there are 8 PCIe Lanes in total and B370 didn't had that many (Only 6), I suppose than the other 2 are repurposed from the B350 SATA Express (Which should be 2 PCIe Lanes, thus you get to 8, and X370 should have 10 by the same metric).


The current IOMMU Grouping isn't THAT bad, actually, each Host Bridge/PCI Bus pairing has its own IOMMU Group, just that it doesn't isolate what is below them, which could be a fixeable quirk.
If you didn't moved cards around, the Video Card should be in its own group so Passthrough should work out of the box, without the ACS override patch/hack. The X370 with bifurcation should spawn a PCI Bridge at 00:04.x and stand in another IOMMU Group (Currently the 3) . Basically, PCIe ACS in Root Ports is there! But is missing for downstream...

From the new tree we can notice the following:
The PCIe 16x Slot now has a Intel XL710 NIC fitted on it.
The GeForce was moved from the main PCIe 16x Slot to the 16x with 4 PCIe 2.0 Lanes
A PCIe 1x Card was added, which has an Intel 82572EI NIC

Is that correct? :D
 
Last edited:

TType85

Active Member
Dec 22, 2014
630
193
43
Garden Grove, CA
Got Unraid to load (bad usb stick caused boot loop). This is the output for my system, have a GTX1060 in the first pcie slot.

The thread paring is a bit different vs Intel E5 too.
E5-2665 (2x)
cpu 0 <===> cpu 16
cpu 1 <===> cpu 17
cpu 2 <===> cpu 18
cpu 3 <===> cpu 19
cpu 4 <===> cpu 20
cpu 5 <===> cpu 21
cpu 6 <===> cpu 22
cpu 7 <===> cpu 23
cpu 8 <===> cpu 24
cpu 9 <===> cpu 25
cpu 10 <===> cpu 26
cpu 11 <===> cpu 27
cpu 12 <===> cpu 28
cpu 13 <===> cpu 29
cpu 14 <===> cpu 30
cpu 15 <===> cpu 31

Ryzen 1700
 
  • Like
Reactions: Patrick

Deci

Active Member
Feb 15, 2015
197
69
28
same my last AMD cpu purchase was the good old s939 socket cpus ! those were the days with DFI based s939 motherboards !


sweet which GCC version is that ? might need a few GCC version for the newer cpu models i.e. GCC 5 or GCC 6 based
back in the days when i used OCAU (your username seems familiar), i think i still have the bright yellow cable sleeving kit that came with my DFI lanparty board in the MISC parts bin at home.
 
  • Like
Reactions: eva2000

eva2000

Active Member
Apr 15, 2013
244
49
28
Brisbane, Australia
centminmod.com
back in the days when i used OCAU (your username seems familiar), i think i still have the bright yellow cable sleeving kit that came with my DFI lanparty board in the MISC parts bin at home.
yes same eva2000 from OCAU :D Haven't been in oc'ing and pc hardware scene in ages though.. more into servers these days with my Centmin Mod LEMP stack = tweaking and tuning of a different kind :)
 

getcrunk

New Member
Mar 12, 2017
2
0
1
44
I tried to read through this all and make sense of it but i am a noob. So am I correct in understanding that acs does work??

if i use a r7 1700 and want to isolate a gfx card to the host, a lan nic to a guest and a tv tuner add in card to another guest this should all work??

if i can do that then i should be able to do the same with some sata drives
 

zir_blazer

Active Member
Dec 5, 2016
356
128
43
I tried to read through this all and make sense of it but i am a noob. So am I correct in understanding that acs does work??

if i use a r7 1700 and want to isolate a gfx card to the host, a lan nic to a guest and a tv tuner add in card to another guest this should all work??

if i can do that then i should be able to do the same with some sata drives
There is *SOME* type of ACS working since Ryzen has several different integrated components isolated in their own IOMMU Groups, but the groups themselves are unusable as they currently are. The exception is the single PCIe 16x Slot going to the Processor, which should fall in Group 2 all alone (For as long that you don't bifucarte it in X370 as 8x/8x, because contrary to my spectations, it has been proven that two cards gets into the same group), thus as things are, out of the box you should be able to pass a single card attached to that slot, and have another Video Card for the host in a PCIe Slot attached to the Chipset that doesn't conflict with that group.
A VFIO dev said that AMD told him that it should be possible to enable better ACS granularity, but that it depends on Firmware support, so default grouping could become substantially better after future fixes:
Re: [vfio-users] Ryzen/X370 Chipset and IOMMU Groups

Plan Z: Use a Kernel compiled with the ACS override patch/hack, enable it with the most aggressive setting (pcie_acs_override=downstream,multifunction), and you will get every device in its own IOMMU Group thus making QEMU-VFIO happy, at the cost of ignoring any type of security and isolation.
You could technically try to pass the SATA Controller NOW with the ACS override, but there is no guarantees that you don't get data corruption. It is possibly the riskiest device to try it with. If you want to play it safe, you should wait for results with either Firmware fixes or a Kernel with workaround for possible quirks.
 
  • Like
Reactions: gigatexal