Bug 274926 - Intel I219-LM renegotiates speed to 10Mbps after disconnection instead of 1Gbps
Summary: Intel I219-LM renegotiates speed to 10Mbps after disconnection instead of 1Gbps
Status: New
Alias: None
Product: Base System
Classification: Unclassified
Component: kern (show other bugs)
Version: 14.0-STABLE
Hardware: amd64 Any
: --- Affects Only Me
Assignee: freebsd-net (Nobody)
URL:
Keywords: IntelNetworking
Depends on:
Blocks:
 
Reported: 2023-11-05 18:57 UTC by David Durieux
Modified: 2023-11-18 18:45 UTC (History)
4 users (show)

See Also:


Attachments
crash files (495 bytes, text/plain)
2023-11-05 18:57 UTC, David Durieux
no flags Details
core.txt.4 (233.96 KB, application/x-troff-man)
2023-11-13 15:01 UTC, David Durieux
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description David Durieux 2023-11-05 18:57:16 UTC
Created attachment 246143 [details]
crash files

On FreeBSD 14.0-RC4, I restart network with '/etc/rc.d/netif restart' because when diconnect my network cable and pugit again I'm at 10 Mbps instead 1000 Mbps.

I join the crash report.

I have the vmcore.0 but it's heavy:

-rw-------  1 root wheel  6.9G Nov  5 19:49 vmcore.0
Comment 1 Olivier Cochard freebsd_committer freebsd_triage 2023-11-12 09:21:43 UTC
Do you have a dmesg or more data about your hardware (and switch)?

Do you confirm to reproduce it, we need to:
1. Unplug & plug back network cable and notice new neg is 10Mbps in place of 1Gbps
2. "service netif restart"
3. Panic
Comment 2 David Durieux 2023-11-12 09:33:56 UTC
Yes.

I have tested too only "service netif restart" and panic too after 2 or 3 times
Comment 3 Olivier Cochard freebsd_committer freebsd_triage 2023-11-12 12:24:09 UTC
We still don't know which chipset / drivers you are using.
Comment 4 David Durieux 2023-11-12 12:46:15 UTC
# I put all :D

% pciconf -vl
hostb0@pci0:0:0:0:      class=0x060000 rev=0x01 hdr=0x00 vendor=0x8086 device=0xa708 subvendor=0x1028 subdevice=0x0c00
    vendor     = 'Intel Corporation'
    class      = bridge
    subclass   = HOST-PCI
vgapci0@pci0:0:2:0:     class=0x030000 rev=0x04 hdr=0x00 vendor=0x8086 device=0xa7a1 subvendor=0x1028 subdevice=0x0c00
    vendor     = 'Intel Corporation'
    device     = 'Raptor Lake-P [Iris Xe Graphics]'
    class      = display
    subclass   = VGA
none0@pci0:0:4:0:       class=0x118000 rev=0x01 hdr=0x00 vendor=0x8086 device=0xa71d subvendor=0x1028 subdevice=0x0c00
    vendor     = 'Intel Corporation'
    class      = dasp
pcib1@pci0:0:6:0:       class=0x060400 rev=0x01 hdr=0x01 vendor=0x8086 device=0xa74d subvendor=0x1028 subdevice=0x0c00
    vendor     = 'Intel Corporation'
    class      = bridge
    subclass   = PCI-PCI
pcib2@pci0:0:7:0:       class=0x060400 rev=0x01 hdr=0x01 vendor=0x8086 device=0xa76e subvendor=0x1028 subdevice=0x0c00
    vendor     = 'Intel Corporation'
    class      = bridge
    subclass   = PCI-PCI
pcib3@pci0:0:7:1:       class=0x060400 rev=0x01 hdr=0x01 vendor=0x8086 device=0xa73f subvendor=0x1028 subdevice=0x0c00
    vendor     = 'Intel Corporation'
    class      = bridge
    subclass   = PCI-PCI
none1@pci0:0:8:0:       class=0x088000 rev=0x01 hdr=0x00 vendor=0x8086 device=0xa74f subvendor=0x1028 subdevice=0x0c00
    vendor     = 'Intel Corporation'
    device     = 'GNA Scoring Accelerator module'
    class      = base peripheral
none2@pci0:0:10:0:      class=0x118000 rev=0x01 hdr=0x00 vendor=0x8086 device=0xa77d subvendor=0x1028 subdevice=0x0c00
    vendor     = 'Intel Corporation'
    class      = dasp
xhci0@pci0:0:13:0:      class=0x0c0330 rev=0x01 hdr=0x00 vendor=0x8086 device=0xa71e subvendor=0x1028 subdevice=0x0c00
    vendor     = 'Intel Corporation'
    class      = serial bus
    subclass   = USB
none3@pci0:0:13:2:      class=0x0c0340 rev=0x01 hdr=0x00 vendor=0x8086 device=0xa73e subvendor=0x1028 subdevice=0x0c00
    vendor     = 'Intel Corporation'
    class      = serial bus
    subclass   = USB
none4@pci0:0:18:0:      class=0x070000 rev=0x01 hdr=0x00 vendor=0x8086 device=0x51fc subvendor=0x1028 subdevice=0x0c00
    vendor     = 'Intel Corporation'
    device     = 'Alder Lake-P Integrated Sensor Hub'
    class      = simple comms
    subclass   = UART
xhci1@pci0:0:20:0:      class=0x0c0330 rev=0x01 hdr=0x00 vendor=0x8086 device=0x51ed subvendor=0x1028 subdevice=0x0c00
    vendor     = 'Intel Corporation'
    device     = 'Alder Lake PCH USB 3.2 xHCI Host Controller'
    class      = serial bus
    subclass   = USB
none5@pci0:0:20:2:      class=0x050000 rev=0x01 hdr=0x00 vendor=0x8086 device=0x51ef subvendor=0x1028 subdevice=0x0c00
    vendor     = 'Intel Corporation'
    device     = 'Alder Lake PCH Shared SRAM'
    class      = memory
    subclass   = RAM
iwlwifi0@pci0:0:20:3:   class=0x028000 rev=0x01 hdr=0x00 vendor=0x8086 device=0x51f1 subvendor=0x8086 subdevice=0x4090
    vendor     = 'Intel Corporation'
    class      = network
ig4iic0@pci0:0:21:0:    class=0x0c8000 rev=0x01 hdr=0x00 vendor=0x8086 device=0x51e8 subvendor=0x1028 subdevice=0x0c00
    vendor     = 'Intel Corporation'
    device     = 'Alder Lake PCH Serial IO I2C Controller'
    class      = serial bus
ig4iic1@pci0:0:21:1:    class=0x0c8000 rev=0x01 hdr=0x00 vendor=0x8086 device=0x51e9 subvendor=0x1028 subdevice=0x0c00
    vendor     = 'Intel Corporation'
    device     = 'Alder Lake PCH Serial IO I2C Controller'
    class      = serial bus
none6@pci0:0:22:0:      class=0x078000 rev=0x01 hdr=0x00 vendor=0x8086 device=0x51e0 subvendor=0x1028 subdevice=0x0c00
    vendor     = 'Intel Corporation'
    device     = 'Alder Lake PCH HECI Controller'
    class      = simple comms
none7@pci0:0:22:3:      class=0x070002 rev=0x01 hdr=0x00 vendor=0x8086 device=0x51e3 subvendor=0x1028 subdevice=0x0c00
    vendor     = 'Intel Corporation'
    device     = 'Alder Lake AMT SOL Redirection'
    class      = simple comms
    subclass   = UART
isab0@pci0:0:31:0:      class=0x060100 rev=0x01 hdr=0x00 vendor=0x8086 device=0x519d subvendor=0x1028 subdevice=0x0c00
    vendor     = 'Intel Corporation'
    class      = bridge
    subclass   = PCI-ISA
hdac0@pci0:0:31:3:      class=0x040380 rev=0x01 hdr=0x00 vendor=0x8086 device=0x51ca subvendor=0x1028 subdevice=0x0c00
    vendor     = 'Intel Corporation'
    class      = multimedia
    subclass   = HDA
ichsmb0@pci0:0:31:4:    class=0x0c0500 rev=0x01 hdr=0x00 vendor=0x8086 device=0x51a3 subvendor=0x1028 subdevice=0x0c00
    vendor     = 'Intel Corporation'
    device     = 'Alder Lake PCH-P SMBus Host Controller'
    class      = serial bus
    subclass   = SMBus
none8@pci0:0:31:5:      class=0x0c8000 rev=0x01 hdr=0x00 vendor=0x8086 device=0x51a4 subvendor=0x1028 subdevice=0x0c00
    vendor     = 'Intel Corporation'
    device     = 'Alder Lake-P PCH SPI Controller'
    class      = serial bus
em0@pci0:0:31:6:        class=0x020000 rev=0x01 hdr=0x00 vendor=0x8086 device=0x0dc5 subvendor=0x1028 subdevice=0x0c00
    vendor     = 'Intel Corporation'
    class      = network
    subclass   = ethernet
nvme0@pci0:1:0:0:       class=0x010802 rev=0x00 hdr=0x00 vendor=0x1e0f device=0x000c subvendor=0x1e0f subdevice=0x0001
    vendor     = 'KIOXIA Corporation'
    class      = mass storage
    subclass   = NVM
Comment 5 Olivier Cochard freebsd_committer freebsd_triage 2023-11-12 13:00:06 UTC
So interface em0 I presume ?

Any specific configuration with it ? (bridge, vlan, etc.)

Intel chipset 0x0DC5, so an Intel I219-LM using id "E1000_DEV_ID_PCH_RPL_I219_LM23" in sys/dev/e1000/e1000_hw.h
Comment 6 David Durieux 2023-11-12 14:30:07 UTC
I use jails (iocage) with vnet / bridge
rc.conf: 

[...]
kld_list="i915kms"
ifconfig_em0="DHCP"
pf_enable="YES"
linux_enable="YES"
wlans_iwlwifi0="wlan0"
ifconfig_wlan0="WPA SYNCDHCP"
devfs_system_ruleset="system"

## network internal interfaces

cloned_interfaces="bridge0 bridge1"

# plumb interface em0 into bridge0 (needed to prevent other bridge to have ARP request from LAN)
ifconfig_bridge0="addm em0 up"

# plumb interface em0 into bridge1
ifconfig_bridge1_alias0="inet 10.0.1.254 netmask 255.255.255.0"

gateway_enable="YES"
iocage_enable="YES"



result of ifconfig: 

% ifconfig
em0: flags=1008943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST,LOWER_UP> metric 0 mtu 1500
        options=4e500bb<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,VLAN_HWFILTER,VLAN_HWTSO,RXCSUM_IPV6,TXCSUM_IPV6,HWSTATS,MEXTPG>
        ether ac:91:a1:29:d2:65
        inet 192.168.20.173 netmask 0xffffff00 broadcast 192.168.20.255
        media: Ethernet autoselect (1000baseT <full-duplex>)
        status: active
        nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
lo0: flags=1008049<UP,LOOPBACK,RUNNING,MULTICAST,LOWER_UP> metric 0 mtu 16384
        options=680003<RXCSUM,TXCSUM,LINKSTATE,RXCSUM_IPV6,TXCSUM_IPV6>
        inet 127.0.0.1 netmask 0xff000000
        inet6 ::1 prefixlen 128
        inet6 fe80::1%lo0 prefixlen 64 scopeid 0x2
        groups: lo
        nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=0
        ether 50:28:4a:30:e1:de
        groups: wlan
        ssid "" channel 1 (2412 MHz 11g)
        regdomain FCC country US authmode WPA1+WPA2/802.11i privacy MIXED
        deftxkey UNDEF txpower 30 bmiss 7 scanvalid 60 protmode CTS wme
        roaming MANUAL
        parent interface: iwlwifi0
        media: IEEE 802.11 Wireless Ethernet autoselect (autoselect)
        status: no carrier
        nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
bridge0: flags=1008843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,LOWER_UP> metric 0 mtu 1500
        options=0
        ether 58:9c:fc:10:61:4f
        id 00:00:00:00:00:00 priority 32768 hellotime 2 fwddelay 15
        maxage 20 holdcnt 6 proto rstp maxaddr 2000 timeout 1200
        root id 00:00:00:00:00:00 priority 32768 ifcost 0 port 0
        member: em0 flags=143<LEARNING,DISCOVER,AUTOEDGE,AUTOPTP>
                ifmaxaddr 0 port 1 priority 128 path cost 20000
        groups: bridge
        nd6 options=9<PERFORMNUD,IFDISABLED>
bridge1: flags=1008843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,LOWER_UP> metric 0 mtu 1500
        options=0
        ether 58:9c:fc:10:a7:5a
        inet 10.0.1.254 netmask 0xffffff00 broadcast 10.0.1.255
        id 00:00:00:00:00:00 priority 32768 hellotime 2 fwddelay 15
        maxage 20 holdcnt 6 proto rstp maxaddr 2000 timeout 1200
        root id 00:00:00:00:00:00 priority 32768 ifcost 0 port 0
        member: vnet0.3 flags=143<LEARNING,DISCOVER,AUTOEDGE,AUTOPTP>
                ifmaxaddr 0 port 13 priority 128 path cost 2000
        member: vnet0.2 flags=143<LEARNING,DISCOVER,AUTOEDGE,AUTOPTP>
                ifmaxaddr 0 port 10 priority 128 path cost 2000
        member: vnet0.1 flags=143<LEARNING,DISCOVER,AUTOEDGE,AUTOPTP>
                ifmaxaddr 0 port 7 priority 128 path cost 2000
        groups: bridge
        nd6 options=9<PERFORMNUD,IFDISABLED>
vnet0.1: flags=1008943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST,LOWER_UP> metric 0 mtu 1500
        description: associated with jail: circus-pes-translation-export as nic: epair0b
        options=8<VLAN_MTU>
        ether 6c:0b:84:28:a5:05
        hwaddr 02:2b:df:33:c5:0a
        groups: epair
        media: Ethernet 10Gbase-T (10Gbase-T <full-duplex>)
        status: active
        nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
vnet0.2: flags=1008943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST,LOWER_UP> metric 0 mtu 1500
        description: associated with jail: circus-pes-translation as nic: epair0b
        options=8<VLAN_MTU>
        ether 6c:0b:84:28:a5:05
        hwaddr 02:6e:f8:c5:23:0a
        groups: epair
        media: Ethernet 10Gbase-T (10Gbase-T <full-duplex>)
        status: active
        nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
vnet0.3: flags=1008943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST,LOWER_UP> metric 0 mtu 1500
        description: associated with jail: fusionsoftware-backend as nic: epair0b
        options=8<VLAN_MTU>
        ether 6c:0b:84:c7:22:b2
        hwaddr 02:94:93:56:60:0a
        groups: epair
        media: Ethernet 10Gbase-T (10Gbase-T <full-duplex>)
        status: active
        nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
tun0: flags=1008051<UP,POINTOPOINT,RUNNING,MULTICAST,LOWER_UP> metric 0 mtu 1500
        options=80000<LINKSTATE>
        inet 172.17.0.6 --> 172.17.0.5 netmask 0xffffffff
        groups: tun
        nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
        Opened by PID 5311
Comment 7 Zhenlei Huang freebsd_committer freebsd_triage 2023-11-12 15:22:33 UTC
(In reply to David Durieux from comment #0)
May you please share the text version of core dump? It is lightweight. It should be named core.txt.* in /var/crash directory.

Note that requires kgdb installed from devel/gdb port or gdb package.
Comment 8 Olivier Cochard freebsd_committer freebsd_triage 2023-11-12 16:12:42 UTC
To sum up, there are 2 problems here:
1). The root cause: After network cable disconnect, the negotiated speed is 10 Mbps in place of 1Gbps.

Notice there are multiple reports of this same 10Mbps negotiation bug (after sleep or disconnection) on Linux with same chipset. Power management seems to be the culprit on Linux:
https://bugzilla.redhat.com/show_bug.cgi?id=1627816

And the Linux patches that solved it are:

e1000e: PCIm function state support: https://lkml.kernel.org/netdev/20190628224932.3389-16-jeffrey.t.kirsher@intel.com/

e1000e: Make speed detection on hotplugging cable more reliable
https://lkml.kernel.org/netdev/309B89C4C689E141A5FF6A0C5FB2118B970D75A2@ORSMSX103.amr.corp.intel.com/T/


2). The second bug with netif restart that trigger a panic, and the text version of the core dump is requested to get more clue about this one.
Comment 9 David Durieux 2023-11-12 16:27:18 UTC
Yes that's correct for the 2 problems.

I will generate a core dump this evening or tomorrow.
Comment 10 David Durieux 2023-11-13 15:01:58 UTC
Created attachment 246271 [details]
core.txt.4

Is this file is the required file you need?
Comment 11 Olivier Cochard freebsd_committer freebsd_triage 2023-11-13 16:22:04 UTC
Yes, this file was usefull.
But it shows some wireless code related bug:


  56 #5 0xffffffff80fe3828 at calltrap+0x8
  57 #6 0xffffffff80cd3760 at ieee80211_node_psq_drain+0x100
  58 #7 0xffffffff80cc7736 at node_cleanup+0xa6
  59 #8 0xffffffff80cc7655 at node_free+0x25
  60 #9 0xffffffff80cc7ceb at ieee80211_node_vdetach+0x2b
  61 #10 0xffffffff80c9fa7d at ieee80211_vap_detach+0x44d
  62 #11 0xffffffff80d9febd at lkpi_ic_vap_delete+0x9d
  63 #12 0xffffffff80cabaf2 at wlan_clone_destroy+0x12
  64 #13 0xffffffff80c66041 at if_clone_destroy+0x91
  65 #14 0xffffffff80c62499 at ifioctl+0x899


Could you try again to reproduce this without those lines in your rc.conf:

wlans_iwlwifi0="wlan0"
ifconfig_wlan0="WPA SYNCDHCP"
Comment 12 David Durieux 2023-11-13 16:41:48 UTC
With these 2 lines commented, I have no crash, so seems a problem with wireless?
Comment 13 Olivier Cochard freebsd_committer freebsd_triage 2023-11-13 16:47:20 UTC
Yes, this second problem seems related to this existing bug "iwlwifi: AX201: crash (kernel panic) on ifconfig wlan0 destroy":
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=273985

So, kept this bug open for your root cause: After network cable disconnect, the negotiated speed is 10 Mbps in place of 1Gbps.
I will rename the title.