r/CentOS•
bdsee

PCI Passthrough CentOS 8

I'm trying to setup a PCI passthrough on my HP T730 by passing through my pcie 4 port intel 1gbps NIC to a pfSense VM and I'm finding it all a bit confusing as there doesn't appear to be a guide that steps people through this exact scenario (vast majority of guides are focused on graphics cards) and the RedHat guides tend to have very limited examples.

I've been using https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/5/html/virtualization/chap-virtualization-pci_passthrough

But when I run virsh nodedev-list --tree I get the following information for the ethernet card which I want to passthrough

+- pci_0000_00_02_1                                                                 
 |   |                                                                               
 |   +- pci_0000_01_00_0                                                             
 |       |                                                                           
 |       +- pci_0000_02_02_0                                                         
 |       |   |                                                                       
 |       |   +- pci_0000_03_00_0                                                     
 |       |   |   |                                                                   
 |       |   |   +- net_enp3s0f0_e8_39_35_12_79_dd                                   
 |       |   |                                                                       
 |       |   +- pci_0000_03_00_1                                                     
 |       |       |                                                                   
 |       |       +- net_enp3s0f1_e8_39_35_12_79_dc                                   
 |       |                                                                           
 |       +- pci_0000_02_04_0                                                         
 |           |                                                                       
 |           +- pci_0000_04_00_0                                                     
 |           |   |                                                                   
 |           |   +- net_enp4s0f0_e8_39_35_12_79_df                                   
 |           |                                                                       
 |           +- pci_0000_04_00_1                                                     
 |               |                                                                   
 |               +- net_enp4s0f1_e8_39_35_12_79_de                          

Which PCI device should I be looking to passthrough? I would assume to passthrough the PCI device that I should be doing the highest level of the tree that doesn't have anything else attached? E.g. pci_0000_01_00_0

Also I came across some people saying they needed to apply an ACS override patch, and others saying that it isn't required, from the reading I have done it appears to be something that is required on many non RHEL based distributions, or perhaps as a way to passthrough lower level hardware (e.g. individual ports) and may be a security risk? Am I on the right track here?

Any help or a link to a guide doing exactly this on a RHEL based distro would be greatly appreciated.

Posted Dec 1, 2019, 11:36 PM UTC

51
bigbadbosp•

I use CentOS 7 and virt manager, so this may be bad info, but I believe it had separated the single PCI lane into each port, so you can forward each port to a different machine, all ports to one, are any combination thereof.

1