https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=248324

            Bug ID: 248324
           Summary: qlxge: stability issues (unusable) with QLogic QLE8142
                    NIC
           Product: Base System
           Version: 12.1-RELEASE
          Hardware: amd64
                OS: Any
            Status: New
          Severity: Affects Some People
          Priority: ---
         Component: kern
          Assignee: b...@freebsd.org
          Reporter: nyako...@gmail.com

Short: QLogic QLE8142 Convergent network adapters do not work properly on
FreeBSD (10.2 and 12.1 tested).
Low speeds and connection dropouts.
But they work perfectly with Linux (qlge driver)
I was suggested that this can be related to mismatched mtu size somewhere.
I also suspect that this somehow can be related to flowcontrol and media
detection.


Long: I have two 10G Qlogic converged network cards.
QLogic QLE8142-IBMX (42C1802)
QLogic QLE8142-SR-IBM (46K8088)
They are basically the same(looks and works same), both flashed with latest
firmware (from Qlogic support) (other firmware versions have no effects on
unstable behavior)

They are transceiver specific and I use them with Qlogic FLTX8571D3BCL-QL
optical transceivers (it seems they support only fiber)

I am testing them with iperf3.

I setup direct fiber link between two NICs on different PCs with different OS
Like this (ifconfig ql0 inet 192.168.10.1/24) and (192.168.10.2/24) for second
PC.


On FreeBSD this card got identified as:
ql0: <Qlogic ISP 8000 PCI CNA Adapter-Ethernet Function v2.0.0> port
0xe300-0xe3ff mem 0xfea0c000-0xfea0ffff,0xfe800000-0xfe8fffff at device 0.0 on
pci1
ql0: 
qls_pci_attach: ha 0xfffffe0000696000 pci_func 0x0  msix_count 0x1 pci_reg
0xfffff80003720700 pci_reg1 0xfffff80003720600
ql0: Ethernet address: 00:c0:dd:26:25:80


On Linux:
qlge 0000:01:00.0: QLogic 10 Gigabit PCI-E Ethernet Driver 
qlge 0000:01:00.0: Driver name: qlge, Version: 1.00.00.35.
qlge 0000:01:00.0 eth1: Link is down.
qlge 0000:01:00.0 eth1: Clearing MAC address
qlge 0000:01:00.0 eth1: Function #0, Port 0, NIC Roll 0, NIC Rev = 1, XG Roll =
0, XG R>
qlge 0000:01:00.0 eth1: MAC address 00:c0:dd:26:25:80


What works:
OS Linux (Arch and Debian tested) qlge
(https://cateee.net/lkddb/web-lkddb/QLGE.html) kernel module.
QLE8142 -> fiber -> any transceiver(including Qlogic one) + any 10G card at any
os(except QLE8142 card on FreeBSD)
mtu 9000 and mtu 1500
All great, I see channel saturation and no errors. Different offload settings
have small effect on anything.

What does not work:
QLE8142 card on FreeBSD with any card in other end (including QLE8142 on Linux)
OS FreeBSD qlxge (https://www.freebsd.org/cgi/man.cgi?query=qlxge) kernel
module, FreeBSD10.2 and FreeBSD12.1 tested.

I get unstable behavior.
Low link speed, or dropout of link when test start.

It is unstable, so, it is hard to describe whats going on.

One example:
iperf3 connecting from Linux box to FreeBSD12.1 with QLE8142 - all seems fine.
iperf3 connecting from FreeBSD12.1 with QLE8142 to Linux box - low unstable
speed (2Gb/s - 5Gb/s) then dropout to zero. Link seems to stay active but no
new connection can pass at all(for some time)

This somehow gets affected by -tso setting, but unstable behavior just become
different.
On FreeBSD10.2 with -tso setting and mtu 1500 - card can work stable for some
time, but sometimes it is not.
With mtu 9000 - unstable, drop of connections.


Another example:
Testing two direct connected QLE8142 cards, one on Linux other on FreeBSD12.1
All default. mtu 1500.
I get 8.2Gb/s from Linux to BSD, 1Gb/s from BSD to Linux.

When on FreeBSD I disable TSO, I get 5Gb/s From BSD to Linux.
And 4Gb/s in both directions simultaneously.

Then. I set mtu 9000 on both ends.
>From Linux to BSD - drop of connection.
>From BSD to Linux 2Gb/s

mtu 9000 and disable TSO on FreeBSD end
>From Linux to BSD - drop of connection.
>From BSD to Linux 9,5Gb/s


FreeBSD show messages in log such as:
ql0: qls_mbx_get_link_status 0x00004000 0x10000051 0x00000000 0x00000037
0x000000f9 0x05050504
ql0: qls_hw_send: tx_free[0] = 2
ql0: qls_mbx_get_link_status 0x00004000 0x10000051 0x00000000 0x00000037
0x000000fd 0x05050504
ql0: qls_mbx_isr: AEN [0x00008012 0x00000060 0x00000037 0x00000000 0x00000000
0x00000000 0x00000000 0x00000000 0x00000000]
ql0: qls_rx_comp: DS bit not set 
ql0: qls_rx_comp: (rxb->paddr != cq_e->b_paddr)[0x55270000, 0x5527c800] 
ql0: qls_rx_comp: (rxb->paddr != cq_e->b_paddr)[0x55270000, 0x35b3cc000] 
ql0: qls_rx_comp: (rxb->paddr != cq_e->b_paddr)[0x55270000, 0x53fe4000]


FreeBSD ifconfig -m ql0 output:
ql0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
       
options=c013b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,TSO4,VLAN_HWTSO,LINKSTATE>
       
capabilities=c013b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,TSO4,VLAN_HWTSO,LINKSTATE>
        ether 00:c0:dd:26:25:80
        inet 192.168.10.1 netmask 0xffffff00 broadcast 192.168.10.255
        media: Ethernet autoselect (10Gbase-SR <full-duplex>)
        status: active
        supported media:
                media autoselect
                media autoselect mediaopt full-duplex
        nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>



>From Linux:
sudo ethtool enp1s0f0

netlink error: No such file or directory
Settings for enp1s0f0:
        Supported ports: [ FIBRE ]
        Supported link modes:   10000baseT/Full 
        Supported pause frame use: No
        Supports auto-negotiation: No
        Supported FEC modes: Not reported
        Advertised link modes:  10000baseT/Full 
        Advertised pause frame use: No
        Advertised auto-negotiation: No
        Advertised FEC modes: Not reported
        Speed: 10000Mb/s
        Duplex: Full
        Port: FIBRE
        PHYAD: 0
        Transceiver: internal
        Auto-negotiation: off
        Supports Wake-on: d
        Wake-on: d
        Current message level: 0x000060f7 (24823)
                               drv probe link ifdown ifup rx_err tx_err hw wol


I can provide ssh access to test environment (email me)

-- 
You are receiving this mail because:
You are the assignee for the bug.
_______________________________________________
freebsd-bugs@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-bugs
To unsubscribe, send any mail to "freebsd-bugs-unsubscr...@freebsd.org"

Reply via email to