[SOLVED] PCI(e) passthrough of a device that shares vendor:device id

autumnwalker

Member
Sep 30, 2019
20
2
8
39
Hello,

I have an HP DL380P G8 with four port onboard NIC and a PCIe four port NIC. They are both seen by Proxmox as "Ethernet controller [0200]: Broadcom Inc. and subsidiaries NetXtreme BCM5719 Gigabit Ethernet PCIe [14e4:1657] (rev 01)"

Is there some way add the PCI(e) card to modprobe to exclude it from Proxmox and pass the entire card through to a VM? When I run "lspci -nnk | grep Ethernet" I get:

Bash:
03:00.0 Ethernet controller [0200]: Broadcom Inc. and subsidiaries NetXtreme BCM5719 Gigabit Ethernet PCIe [14e4:1657] (rev 01)
        Subsystem: Hewlett-Packard Company Ethernet 1Gb 4-port 331FLR Adapter [103c:169d]
03:00.1 Ethernet controller [0200]: Broadcom Inc. and subsidiaries NetXtreme BCM5719 Gigabit Ethernet PCIe [14e4:1657] (rev 01)
        Subsystem: Hewlett-Packard Company Ethernet 1Gb 4-port 331FLR Adapter [103c:169d]
03:00.2 Ethernet controller [0200]: Broadcom Inc. and subsidiaries NetXtreme BCM5719 Gigabit Ethernet PCIe [14e4:1657] (rev 01)
        Subsystem: Hewlett-Packard Company Ethernet 1Gb 4-port 331FLR Adapter [103c:169d]
03:00.3 Ethernet controller [0200]: Broadcom Inc. and subsidiaries NetXtreme BCM5719 Gigabit Ethernet PCIe [14e4:1657] (rev 01)
        Subsystem: Hewlett-Packard Company Ethernet 1Gb 4-port 331FLR Adapter [103c:169d]
0a:00.0 Ethernet controller [0200]: Broadcom Inc. and subsidiaries NetXtreme BCM5719 Gigabit Ethernet PCIe [14e4:1657] (rev 01)
        Subsystem: Hewlett-Packard Company Ethernet 1Gb 4-port 331T Adapter [103c:3383]
0a:00.1 Ethernet controller [0200]: Broadcom Inc. and subsidiaries NetXtreme BCM5719 Gigabit Ethernet PCIe [14e4:1657] (rev 01)
        Subsystem: Hewlett-Packard Company Ethernet 1Gb 4-port 331T Adapter [103c:3383]
0a:00.2 Ethernet controller [0200]: Broadcom Inc. and subsidiaries NetXtreme BCM5719 Gigabit Ethernet PCIe [14e4:1657] (rev 01)
        Subsystem: Hewlett-Packard Company Ethernet 1Gb 4-port 331T Adapter [103c:3383]
0a:00.3 Ethernet controller [0200]: Broadcom Inc. and subsidiaries NetXtreme BCM5719 Gigabit Ethernet PCIe [14e4:1657] (rev 01)
        Subsystem: Hewlett-Packard Company Ethernet 1Gb 4-port 331T Adapter [103c:3383]

You can see the subsystem is different - can I use that in modprobe?
 
Thanks @dcsapak! I will try just passing them through. I have two other related questions:

1) I was playing around with just passing them through - when I go to add the card each port on the card shows as an individual device (0000:0a:00.0, .1, .2, .3) (see first screenshot), but when I try to add more than one port they all show up as 0000:0a:00 (see second screenshot). Does that mean that passing one port actually passes the entire card or do I need to pass each port individually and it's just not displaying "correctly" under the Hardware tab?

1634667151996.png

1634667183734.png

2) I think I can do SR-IOV with this server / card. Would I be better off doing SR-IOV or just passing the whole card?
 
It goes from 0a:00.x to 0a:00 when you select All Functions. Selecting All Functions will passthrough all parts of 0a:00, which means all four ethernet controllers. If you want to passthrough only one or some of them, add each of them but do not select All Functions.
 
  • Like
Reactions: autumnwalker
It goes from 0a:00.x to 0a:00 when you select All Functions. Selecting All Functions will passthrough all parts of 0a:00, which means all four ethernet controllers. If you want to passthrough only one or some of them, add each of them but do not select All Functions.
That makes perfect sense! Thank you very much.
 
  • Like
Reactions: autumnwalker
Thanks @dcsapak! I will try just passing them through. I have two other related questions:

1) I was playing around with just passing them through - when I go to add the card each port on the card shows as an individual device (0000:0a:00.0, .1, .2, .3) (see first screenshot), but when I try to add more than one port they all show up as 0000:0a:00 (see second screenshot). Does that mean that passing one port actually passes the entire card or do I need to pass each port individually and it's just not displaying "correctly" under the Hardware tab?

View attachment 30640

View attachment 30641

2) I think I can do SR-IOV with this server / card. Would I be better off doing SR-IOV or just passing the whole card?

Hello autumnwalker,

I need help, how did you add the network devices?
I have a ProLiant ML350p Gen8 server, with 4 onboard NIC and PCIe four port NIC, NetXtreme BCM5719 Gigabit Ethernet PCIe [14e4:1657]

The problem in the VM, the network is very slow, the network speed in the VM, its maximum transfer of 250 Mbps and its network device is VirtIO (paravirtualized).

I read that adding the network devices was solved

1710287160399.png
 

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!