Problem mit Mellanox und bhyve passthrough

mr44er

moderater Moderator
Teammitglied
Code:
kldload mlx4en
mlx4_core0: <mlx4_core> mem 0xc0100000-0xc01fffff,0xc0800000-0xc0ffffff irq 32 at device 5.0 on pci0
<6>mlx4_core: Mellanox ConnectX core driver v3.4.1 (October 2017)
mlx4_core0: Unable to determine PCI device chain minimum BW
mlx4_core0: command 0x31 timed out (go bit not cleared)
mlx4_core0: NOP command failed to generate MSI-X interrupt IRQ 266)
mlx4_core0: Trying again without MSI-X
mlx4_core0: Failed to initialize event queue table, aborting
device_attach: mlx4_core0 attach returned 6

vmstat -i
interrupt                          total       rate
irq4: uart0                         1025          3
cpu0:timer                          6187         19
cpu1:timer                          4818         14
irq265: virtio_pci0                 2243          7
Total                              14273         43

Code:
vm passthru
DEVICE     BHYVE ID     READY        DESCRIPTION
hostb0     0/0/0        No           RD890 Northbridge only dual slot (2x8) PCI-e GFX Hydra part
none0      0/0/2        No           RD890S/RD990 I/O Memory Management Unit (IOMMU)
pcib1      0/2/0        No           RD890/RD9x0/RX980 PCI to PCI bridge (PCI Express GFX port 0)
pcib2      0/3/0        No           RD890/RD9x0 PCI to PCI bridge (PCI Express GFX port 1)
pcib3      0/9/0        No           RD890/RD9x0/RX980 PCI to PCI bridge (PCI Express GPP Port 4)
pcib4      0/10/0       No           RD890/RD9x0/RX980 PCI to PCI bridge (PCI Express GPP Port 5)
pcib5      0/11/0       No           RD890/RD990 PCI to PCI bridge (PCI Express GFX2 port 0)
ahci0      0/17/0       No           SB7x0/SB8x0/SB9x0 SATA Controller [AHCI mode]
ohci0      0/18/0       No           SB7x0/SB8x0/SB9x0 USB OHCI0 Controller
ohci1      0/18/1       No           SB7x0 USB OHCI1 Controller
ehci0      0/18/2       No           SB7x0/SB8x0/SB9x0 USB EHCI Controller
ohci2      0/19/0       No           SB7x0/SB8x0/SB9x0 USB OHCI0 Controller
ohci3      0/19/1       No           SB7x0 USB OHCI1 Controller
ehci1      0/19/2       No           SB7x0/SB8x0/SB9x0 USB EHCI Controller
intsmb0    0/20/0       No           SBx00 SMBus Controller
isab0      0/20/3       No           SB7x0/SB8x0/SB9x0 LPC host controller
pcib6      0/20/4       No           SBx00 PCI to PCI Bridge
ohci4      0/20/5       No           SB7x0/SB8x0/SB9x0 USB OHCI2 Controller
hostb1     0/24/0       No           Family 15h Processor Function 0
hostb2     0/24/1       No           Family 15h Processor Function 1
hostb3     0/24/2       No           Family 15h Processor Function 2
hostb4     0/24/3       No           Family 15h Processor Function 3
hostb5     0/24/4       No           Family 15h Processor Function 4
hostb6     0/24/5       No           Family 15h Processor Function 5
ppt0       6/0/0        Yes          82580 Gigabit Network Connection
ppt1       6/0/1        Yes          82580 Gigabit Network Connection
ppt2       6/0/2        Yes          82580 Gigabit Network Connection
ppt3       6/0/3        Yes          82580 Gigabit Network Connection
ppt4       5/0/0        Yes          SAS2308 PCI-Express Fusion-MPT SAS-2
em0        4/0/0        No           82574L Gigabit Network Connection
ppt5       3/0/0        Yes          82574L Gigabit Network Connection
ppt6       2/0/0        Yes          MT26448 [ConnectX EN 10GigE, PCIe 2.0 5GT/s]
vgapci0    1/9/0        No           ASPEED Graphics Family

Gast und Host: 12.0-RELEASE-p8 GENERIC

Auf dem Host direkt funktioniert die Karte und passthru an sich bei anderen Karten funktioniert problemlos.

Hat jemand noch einen heißen Tip für mich außer andere Karte kaufen? :p
 
Mhm, Firmware jetzt von 2.9.1000 auf 2.10.720 geflasht.
Anderen Slot probiert.

Problem besteht immer noch.

Jetzt gefunden:
Code:
766105Description: 
Due to a bug in some QEMU versions, interrupts do not function properly for Virtual Functions. 
This causes the driver initialization to fail, and such error message will be printed:
"mlx4_core 0000:0b:00.0: command 0x31 timed out (go bit not cleared) mlx4_core 0000:0b:00.0: NOP command failed to generate interrupt (IRQ 57), aborting".
Workaround: Upgrade to the latest version of QEMU in the hypervisor.

http://www.mellanox.com/pdf/prod_software/MLNX_OFED_Archived_Known_Issues.pdf
 
Lösung: andere Karte gekauft. ;)

-> HP NC523SFP aka QLogic cLOM8214

Code:
...
ppt6       2/0/0        Yes          cLOM8214 1/10GbE Controller
ppt7       2/0/1        Yes          cLOM8214 1/10GbE Controller
...

Code:
ql0: <Qlogic ISP 80xx PCI CNA Adapter-Ethernet Function v1.1.36> mem 0xc0200000-0xc03fffff,0xc0400000-0xc040ffff irq 32 at device 7.0 on pci0
ql0: qla_pci_attach: firmware[4.20.1.1429931003]
ql0: Ethernet address: 28:92:xx
ql1: <Qlogic ISP 80xx PCI CNA Adapter-Ethernet Function v1.1.36> mem 0xc0600000-0xc07fffff,0xc0800000-0xc080ffff irq 32 at device 7.1 on pci0
ql1: qla_pci_attach: firmware[4.20.1.1429931003]
ql1: Ethernet address: 28:92:xx

Code:
ql0@pci0:0:7:0: class=0x020000 card=0x3733103c chip=0x80201077 rev=0x54 hdr=0x00
    vendor     = 'QLogic Corp.'
    device     = 'cLOM8214 1/10GbE Controller'
    class      = network
    subclass   = ethernet
ql1@pci0:0:7:1: class=0x020000 card=0x3733103c chip=0x80201077 rev=0x54 hdr=0x00
    vendor     = 'QLogic Corp.'
    device     = 'cLOM8214 1/10GbE Controller'
    class      = network
    subclass   = ethernet
 
HP NC523SFP aka QLogic cLOM8214

Kleine Stolperfalle zum Treiber auf aktuellem xigmaNAS:

ql0: qla_dump_buf8: qla_hw_send: wrong pkt dump end

Falls die Karte das ausspuckt, muss man die MTU explizit nochmals händisch in der GUI setzen, damit das marschiert.
Oder auch temporär zum Test so:
Code:
ifconfig ql0 mtu 1500
bzw.
ifconfig ql0 mtu 9000

Quelle: https://forums.freebsd.org/threads/qlxgb-kernel-driver-errors-out-when-configured.68702/

Hätt ich einfach gleich gegoogelt und nicht erst ne Stunde daran verpopelt....:rolleyes:

Edit:

Test QLogic cLOM8214 -> Chelsio T440-CR

MTU 1500:
Code:
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec   653 MBytes  5.48 Gbits/sec    0   3.95 MBytes       
[  5]   1.00-2.00   sec   972 MBytes  8.15 Gbits/sec    0   3.98 MBytes       
[  5]   2.00-3.00   sec   945 MBytes  7.93 Gbits/sec    0   4.00 MBytes       
[  5]   3.00-4.00   sec   934 MBytes  7.83 Gbits/sec    0   4.00 MBytes       
[  5]   4.00-5.00   sec   938 MBytes  7.87 Gbits/sec    0   4.00 MBytes       
[  5]   5.00-6.00   sec   922 MBytes  7.73 Gbits/sec    0   4.00 MBytes       
[  5]   6.00-7.00   sec   919 MBytes  7.71 Gbits/sec    0   4.00 MBytes       
[  5]   7.00-8.00   sec   923 MBytes  7.74 Gbits/sec    0   4.00 MBytes       
[  5]   8.00-9.00   sec   935 MBytes  7.84 Gbits/sec    0   4.00 MBytes       
[  5]   9.00-10.00  sec   890 MBytes  7.46 Gbits/sec    0   4.00 MBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec  8.82 GBytes  7.57 Gbits/sec    0             sender
[  5]   0.00-10.00  sec  8.82 GBytes  7.57 Gbits/sec                  receiver

MTU 9000:
Code:
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec   859 MBytes  7.20 Gbits/sec    0   2.08 MBytes       
[  5]   1.00-2.00   sec  1.15 GBytes  9.85 Gbits/sec    0   3.36 MBytes       
[  5]   2.00-3.00   sec  1.14 GBytes  9.82 Gbits/sec    0   4.01 MBytes       
[  5]   3.00-4.00   sec  1.15 GBytes  9.86 Gbits/sec    0   4.01 MBytes       
[  5]   4.00-5.00   sec  1.15 GBytes  9.86 Gbits/sec    0   4.01 MBytes       
[  5]   5.00-6.00   sec  1.15 GBytes  9.86 Gbits/sec    0   4.01 MBytes       
[  5]   6.00-7.00   sec  1.15 GBytes  9.86 Gbits/sec    0   4.01 MBytes       
[  5]   7.00-8.00   sec  1.15 GBytes  9.86 Gbits/sec    0   4.01 MBytes       
[  5]   8.00-9.00   sec  1.15 GBytes  9.87 Gbits/sec    0   4.01 MBytes       
[  5]   9.00-10.00  sec  1.15 GBytes  9.87 Gbits/sec    0   4.01 MBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec  11.2 GBytes  9.59 Gbits/sec    0             sender
[  5]   0.00-10.00  sec  11.2 GBytes  9.59 Gbits/sec                  receiver

...nice :)
 
Stimmt, bei dir war das ja noch nicht gelöst.

Aber du bist nicht alleine (udp und mtu 9000):

Code:
[ ID] Interval           Transfer     Bitrate         Total Datagrams
[  5]   0.00-1.00   sec   131 KBytes  1.08 Mbits/sec  15
[  5]   1.00-2.00   sec   131 KBytes  1.08 Mbits/sec  15
[  5]   2.00-3.00   sec   122 KBytes  1.00 Mbits/sec  14
[  5]   3.00-4.00   sec   131 KBytes  1.08 Mbits/sec  15
[  5]   4.00-5.00   sec   131 KBytes  1.08 Mbits/sec  15
[  5]   5.00-6.00   sec   122 KBytes  1.00 Mbits/sec  14
[  5]   6.00-7.00   sec   131 KBytes  1.08 Mbits/sec  15
[  5]   7.00-8.00   sec   131 KBytes  1.08 Mbits/sec  15
[  5]   8.00-9.00   sec   122 KBytes  1.00 Mbits/sec  14
[  5]   9.00-10.00  sec   131 KBytes  1.08 Mbits/sec  15
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Jitter    Lost/Total Datagrams
[  5]   0.00-10.00  sec  1.26 MBytes  1.05 Mbits/sec  0.000 ms  0/147 (0%)  sender
[  5]   0.00-10.00  sec  0.00 Bytes  0.00 bits/sec  0.000 ms  0/0 (0%)  receiver

Ok, das wurmt mich nun. :confused:

Edit:
Mit nem TCP-Test hinterher ist es ebenfalls so langsam.

Edit2:

Bei UDP muss die Bandbreite mit angegeben werden:

Code:
iperf3 -c 192.168.xxx.xxx -u -b 10000M
Connecting to host 192.168.xxx.xxx, port 5201
[  5] local 192.168.xxx.xxx port 47664 connected to 192.168.xxx.xxx port 5201
[ ID] Interval           Transfer     Bitrate         Total Datagrams
[  5]   0.00-1.00   sec   936 MBytes  7.86 Gbits/sec  121413 
[  5]   1.00-2.00   sec  1.16 GBytes  9.92 Gbits/sec  155688 
[  5]   2.00-3.00   sec  1.16 GBytes  9.93 Gbits/sec  155855 
[  5]   3.00-4.00   sec  1.16 GBytes  9.93 Gbits/sec  155237 
[  5]   4.00-5.00   sec  1.16 GBytes  9.93 Gbits/sec  154916 
[  5]   5.00-6.00   sec  1.16 GBytes  9.93 Gbits/sec  154509 
[  5]   6.00-7.00   sec  1.16 GBytes  9.93 Gbits/sec  154437 
[  5]   7.00-8.00   sec  1.16 GBytes  9.93 Gbits/sec  154467 
[  5]   8.00-9.00   sec  1.16 GBytes  9.93 Gbits/sec  154982 
[  5]   9.00-10.00  sec  1.16 GBytes  9.93 Gbits/sec  155573 
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Jitter    Lost/Total Datagrams
[  5]   0.00-10.00  sec  11.3 GBytes  9.72 Gbits/sec  0.000 ms  0/1517077 (0%)  sender
[  5]   0.00-10.00  sec  0.00 Bytes  0.00 bits/sec  0.000 ms  0/0 (0%)  receiver
 
Hallo,

da kommt max das an:
Code:
[  5]   2.00-3.00   sec   694 MBytes  5.83 Gbits/sec  498769

aber was mich viel mehr stört ist das:

Code:
[  5]   0.00-10.10  sec  4.40 GBytes  3.74 Gbits/sec  0.002 ms  1754967/4988281 (35%)  receiver

Gruß ré
 
Hast du die Firmware deiner Intels mal abgeglichen? Ggf. gibts was Neueres? Nach dem Murks mit den Mellanox und der Uralt-FW habe ich auf der Chelsio und HP strikt alles erstmal geflasht.

Evtl. Staub im Slot/Stecker sitzt nicht knackig drin? Ist das eine Direktverbindung oder per Switch? Was für Kabel sind das (active/passive)?

Null Erfahrung, aber ich hatte schon gelesen, dass manche Kabel wegen Verdongelung absichtlich nicht mit gewissen Karten gehen (sollen).
 
Hallo mr44er,

ich habe noch nicht alle Kombinationen durch. Ich habe in den FreeBSD Rechnern nur intel und die Mellanox nur in Linux Kisten. eine intel (HP) hat neue Firmware, die anderen noch nicht. Die Mellanox haben auch noch nicht alle ein Update bekommen. die gbic sind alles HP. Die Kabel sind alle OM2 und alle Verbindungen laufe über einen switch (HP 5406ZL). Ich habe noch einen 6600, mit dem werde ich das noch mal testen, aber im Augenblick habe ich zu wenig Zeit dafür.

Gruß ré
 
Ok, ich habe das ohne Switch alles direkt verknüppelt. Ein Switch lohnt sich bisher nicht bzw. wäre überflüssig bei meinem Einsatzzweck.

Wenn du wieder Luft hast und den Thread rauskramst:
-Evtl. popelt der Switch was bisher Übersehenes mit rein. (hab auch nicht mehr auf dem Schirm, ob du die Direktverbindung getestet hattest)
-Zum Flashen hatte ich die Karten ganz faul in einen Winrechner gesteckt, weil ich produktive Systeme so sauber wie möglich halte. Meine Chelsio ist Gen4, somit EOL und ich hatte da schon suchen und probieren müssen, um die letzte FW für Gen4 in der bloated-Suite zu finden. Überraschungseffekt: Nach dem Umstecken in den Server und beim Laden der Kernelmodule wurde dabei nochmals eine neuere FW geflasht. 'Fest' und nicht nur temporär, wovon ich nicht ausging. Nunja, fürs nächste Mal weiß ich das und es spart Zeit. ;)

Evtl. kommen heute meine bestellten 3m passiven Kabel (cisco-irgendwas) und ggf. kann ich Zeit zum Testen abzwacken, bisher habe ich nur mit aktiven 10m (ebenfalls cisco) Stolperfallen im Wohnzimmer gebaut.:D
 
Fürs Archiv:

Physikalischer Host1: FreeBSD12
vm: aktuelles XigmaNAS + Test QLogic cLOM8214 (MTU 9000) per PCI-passthrough

Physikalischer Host2: aktuelles Proxmox + Chelsio T440-CR (MTU 9000)

Jeweils Port1 auf Port1 der anderen Karte per Kabel (Cisco - SFP-H10GB-CU3M) direkt verbunden.

Code:
iperf3 -c 192.168.x.x -u -b 10000M
Connecting to host 192.168.x.x, port 5201
[  5] local 192.168.x.x port 44600 connected to 192.168.x.x port 5201
[ ID] Interval           Transfer     Bitrate         Total Datagrams
[  5]   0.00-1.00   sec  1.16 GBytes  9.95 Gbits/sec  138998 
[  5]   1.00-2.00   sec  1.16 GBytes  9.92 Gbits/sec  138634 
[  5]   2.00-3.00   sec  1.16 GBytes  9.93 Gbits/sec  138660 
[  5]   3.00-4.00   sec  1.16 GBytes  9.92 Gbits/sec  138641 
[  5]   4.00-5.00   sec  1.16 GBytes  9.93 Gbits/sec  138668 
[  5]   5.00-6.00   sec  1.15 GBytes  9.92 Gbits/sec  138524 
[  5]   6.00-7.00   sec  1.16 GBytes  9.93 Gbits/sec  138660 
[  5]   7.00-8.00   sec  1.15 GBytes  9.90 Gbits/sec  138262 
[  5]   8.00-9.00   sec  1.16 GBytes  9.94 Gbits/sec  138910 
[  5]   9.00-10.00  sec  1.16 GBytes  9.92 Gbits/sec  138640 
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Jitter    Lost/Total Datagrams
[  5]   0.00-10.00  sec  11.6 GBytes  9.93 Gbits/sec  0.000 ms  0/1386597 (0%)  sender
[  5]   0.00-10.00  sec  0.00 Bytes  0.00 bits/sec  0.000 ms  0/0 (0%)  receiver

iperf Done.

Proxmox hat beim ersten boot gemeckert, dass die FW auf der Chelsio zu alt für den Treiber sei und hat prompt automagisch erneut neue FW geflasht, als ich von FreeBSD bekam. :D

tl;dr:
10GBe FreeBSD <-> 10GBe Linux = funktioniert. ;)
 
Zurück
Oben