[Bug 266973] [e1000] incorrect behavior when media and mediaopt are set to 100BaseTX full-duplex
Date: Mon, 07 Nov 2022 20:50:12 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=266973 --- Comment #2 from Kristof Provost <kp@freebsd.org> --- We've taken a look at the PHY interactions with this dtrace snippet: dtrace -n 'fbt::e1000_read_phy_reg_82580:entry { printf("read(%#x)", arg1); self->data = arg2; }' -n 'fbt::e1000_read_phy_reg_82580:return { printf("=> %#x", *(uint16_t *)self->data); }' -n 'fbt::e1000_write_phy_reg_82580:entry { printf("write(%#x, %#x)", arg1, arg2); }' -c "ifconfig igb0 media 100BaseTX mediaopt full-duplex" It's a bit strange that running the command to force 100-full with dtrace does not entail the problem. but running again ifconfig igb1 media auto; ifconfig igb1 media 100BaseTX mediaopt full-duplex; entails the problem again. See the bellow output: [root@r640fw7m ~]# ifconfig igb1 media auto [root@r640fw7m ~]# ifconfig igb1 igb1: flags=8863<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 options=4e100bb<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,VLAN_HWFILTER,RXCSUM_IPV6,TXCSUM_IPV6,NOMAP> ether e4:43:4b:de:53:03 inet 10.2.7.141 netmask 0xffff0000 broadcast 10.2.255.255 media: Ethernet autoselect (100baseTX ) status: active nd6 options=1 [root@r640fw7m ~]# dtrace -n 'fbt::e1000_read_phy_reg_82580:entry { printf("read(%#x)", arg1); self->data = arg2; }' -n 'fbt::e1000_read_phy_reg_82580:return { printf("=> %#x", *(uint16_t *)self->data); }' -n 'fbt::e1000_write_phy_reg_82580:entry { printf("write(%#x, %#x)", arg1, arg2); }' -c "ifconfig igb1 media 100BaseTX mediaopt full-duplex" dtrace: description 'fbt::e1000_read_phy_reg_82580:entry ' matched 1 probe dtrace: description 'fbt::e1000_read_phy_reg_82580:return ' matched 1 probe dtrace: description 'fbt::e1000_write_phy_reg_82580:entry ' matched 1 probe dtrace: pid 31422 has exited CPU ID FUNCTION:NAME 26 4923 e1000_read_phy_reg_82580:entry read(0x16) 26 4924 e1000_read_phy_reg_82580:return => 0x7f08 26 4925 e1000_write_phy_reg_82580:entry write(0x16, 0xff08) 26 4923 e1000_read_phy_reg_82580:entry read(0x12) 26 4924 e1000_read_phy_reg_82580:return => 0x840a 26 4925 e1000_write_phy_reg_82580:entry write(0x12, 0x840a) 26 4923 e1000_read_phy_reg_82580:entry read(0x9) 26 4924 e1000_read_phy_reg_82580:return => 0x600 26 4925 e1000_write_phy_reg_82580:entry write(0x9, 0x600) 26 4923 e1000_read_phy_reg_82580:entry read(0) 26 4924 e1000_read_phy_reg_82580:return => 0x1040 26 4925 e1000_write_phy_reg_82580:entry write(0, 0x2100) 26 4923 e1000_read_phy_reg_82580:entry read(0x1) 26 4924 e1000_read_phy_reg_82580:return => 0x7949 26 4923 e1000_read_phy_reg_82580:entry read(0x1) 26 4924 e1000_read_phy_reg_82580:return => 0x7949 26 4923 e1000_read_phy_reg_82580:entry read(0x1) 26 4924 e1000_read_phy_reg_82580:return => 0x7949 26 4923 e1000_read_phy_reg_82580:entry read(0x1) 26 4924 e1000_read_phy_reg_82580:return => 0x7949 26 4923 e1000_read_phy_reg_82580:entry read(0x1) 26 4924 e1000_read_phy_reg_82580:return => 0x7949 26 4923 e1000_read_phy_reg_82580:entry read(0x1) 26 4924 e1000_read_phy_reg_82580:return => 0x7949 26 4923 e1000_read_phy_reg_82580:entry read(0x1) 26 4924 e1000_read_phy_reg_82580:return => 0x7949 26 4923 e1000_read_phy_reg_82580:entry read(0x1) 26 4924 e1000_read_phy_reg_82580:return => 0x7949 26 4923 e1000_read_phy_reg_82580:entry read(0x1) 26 4924 e1000_read_phy_reg_82580:return => 0x7949 26 4923 e1000_read_phy_reg_82580:entry read(0x1) 26 4924 e1000_read_phy_reg_82580:return => 0x7949 26 4923 e1000_read_phy_reg_82580:entry read(0x1) 26 4924 e1000_read_phy_reg_82580:return => 0x7949 26 4923 e1000_read_phy_reg_82580:entry read(0x1) 26 4924 e1000_read_phy_reg_82580:return => 0x7949 26 4923 e1000_read_phy_reg_82580:entry read(0x1) 26 4924 e1000_read_phy_reg_82580:return => 0x7949 26 4923 e1000_read_phy_reg_82580:entry read(0x1) 26 4924 e1000_read_phy_reg_82580:return => 0x7949 26 4923 e1000_read_phy_reg_82580:entry read(0x1) 26 4924 e1000_read_phy_reg_82580:return => 0x7949 26 4923 e1000_read_phy_reg_82580:entry read(0x1) 26 4924 e1000_read_phy_reg_82580:return => 0x7949 26 4923 e1000_read_phy_reg_82580:entry read(0x1) 26 4924 e1000_read_phy_reg_82580:return => 0x7949 26 4923 e1000_read_phy_reg_82580:entry read(0x1) 26 4924 e1000_read_phy_reg_82580:return => 0x7949 26 4923 e1000_read_phy_reg_82580:entry read(0x1) 26 4924 e1000_read_phy_reg_82580:return => 0x7949 26 4923 e1000_read_phy_reg_82580:entry read(0x1) 26 4924 e1000_read_phy_reg_82580:return => 0x7949 26 4923 e1000_read_phy_reg_82580:entry read(0x1) 26 4924 e1000_read_phy_reg_82580:return => 0x7949 26 4923 e1000_read_phy_reg_82580:entry read(0x1) 26 4924 e1000_read_phy_reg_82580:return => 0x7949 26 4923 e1000_read_phy_reg_82580:entry read(0x16) 26 4924 e1000_read_phy_reg_82580:return => 0x7f08 26 4925 e1000_write_phy_reg_82580:entry write(0x16, 0xff08) 26 4923 e1000_read_phy_reg_82580:entry read(0x12) 26 4924 e1000_read_phy_reg_82580:return => 0x840a 26 4925 e1000_write_phy_reg_82580:entry write(0x12, 0x840a) 26 4923 e1000_read_phy_reg_82580:entry read(0x9) 26 4924 e1000_read_phy_reg_82580:return => 0x600 26 4925 e1000_write_phy_reg_82580:entry write(0x9, 0x600) 26 4923 e1000_read_phy_reg_82580:entry read(0) 26 4924 e1000_read_phy_reg_82580:return => 0x1040 26 4925 e1000_write_phy_reg_82580:entry write(0, 0x2100) 26 4923 e1000_read_phy_reg_82580:entry read(0x1) 26 4924 e1000_read_phy_reg_82580:return => 0x7949 26 4923 e1000_read_phy_reg_82580:entry read(0x1) 26 4924 e1000_read_phy_reg_82580:return => 0x7949 26 4923 e1000_read_phy_reg_82580:entry read(0x1) 26 4924 e1000_read_phy_reg_82580:return => 0x7949 26 4923 e1000_read_phy_reg_82580:entry read(0x1) 26 4924 e1000_read_phy_reg_82580:return => 0x7949 26 4923 e1000_read_phy_reg_82580:entry read(0x1) 26 4924 e1000_read_phy_reg_82580:return => 0x7949 26 4923 e1000_read_phy_reg_82580:entry read(0x1) 26 4924 e1000_read_phy_reg_82580:return => 0x7949 26 4923 e1000_read_phy_reg_82580:entry read(0x1) 26 4924 e1000_read_phy_reg_82580:return => 0x7949 26 4923 e1000_read_phy_reg_82580:entry read(0x1) 26 4924 e1000_read_phy_reg_82580:return => 0x7949 26 4923 e1000_read_phy_reg_82580:entry read(0x1) 26 4924 e1000_read_phy_reg_82580:return => 0x7949 26 4923 e1000_read_phy_reg_82580:entry read(0x1) 26 4924 e1000_read_phy_reg_82580:return => 0x7949 26 4923 e1000_read_phy_reg_82580:entry read(0x1) 26 4924 e1000_read_phy_reg_82580:return => 0x7949 26 4923 e1000_read_phy_reg_82580:entry read(0x1) 26 4924 e1000_read_phy_reg_82580:return => 0x7949 26 4923 e1000_read_phy_reg_82580:entry read(0x1) 26 4924 e1000_read_phy_reg_82580:return => 0x7949 26 4923 e1000_read_phy_reg_82580:entry read(0x1) 26 4924 e1000_read_phy_reg_82580:return => 0x7949 26 4923 e1000_read_phy_reg_82580:entry read(0x1) 26 4924 e1000_read_phy_reg_82580:return => 0x7949 26 4923 e1000_read_phy_reg_82580:entry read(0x1) 26 4924 e1000_read_phy_reg_82580:return => 0x7949 26 4923 e1000_read_phy_reg_82580:entry read(0x1) 26 4924 e1000_read_phy_reg_82580:return => 0x7949 26 4923 e1000_read_phy_reg_82580:entry read(0x1) 26 4924 e1000_read_phy_reg_82580:return => 0x7949 26 4923 e1000_read_phy_reg_82580:entry read(0x1) 26 4924 e1000_read_phy_reg_82580:return => 0x7949 26 4923 e1000_read_phy_reg_82580:entry read(0x1) 26 4924 e1000_read_phy_reg_82580:return => 0x7949 26 4923 e1000_read_phy_reg_82580:entry read(0x1) 26 4924 e1000_read_phy_reg_82580:return => 0x7949 26 4923 e1000_read_phy_reg_82580:entry read(0x1) 26 4924 e1000_read_phy_reg_82580:return => 0x7949 2 4923 e1000_read_phy_reg_82580:entry read(0x1) [root@r640fw7m ~]# ifconfig igb1 igb1: flags=8863<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 options=4e100bb<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,VLAN_HWFILTER,RXCSUM_IPV6,TXCSUM_IPV6,NOMAP> ether e4:43:4b:de:53:03 inet 10.2.7.141 netmask 0xffff0000 broadcast 10.2.255.255 media: Ethernet 100baseTX status: active nd6 options=1 [root@r640fw7m ~]# ifconfig igb1 media 100BaseTX mediaopt full-duplex [root@r640fw7m ~]# ifconfig igb1 igb1: flags=8863<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 options=4e100bb<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,VLAN_HWFILTER,RXCSUM_IPV6,TXCSUM_IPV6,NOMAP> ether e4:43:4b:de:53:03 inet 10.2.7.141 netmask 0xffff0000 broadcast 10.2.255.255 media: Ethernet 100baseTX status: active nd6 options=1 [root@r640fw7m ~]# ifconfig igb1 media auto [root@r640fw7m ~]# ifconfig igb1 media 100BaseTX mediaopt full-duplex [root@r640fw7m ~]# ifconfig igb1 igb1: flags=8863<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 options=4e100bb<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,VLAN_HWFILTER,RXCSUM_IPV6,TXCSUM_IPV6,NOMAP> ether e4:43:4b:de:53:03 inet 10.2.7.141 netmask 0xffff0000 broadcast 10.2.255.255 media: Ethernet 100baseTX (autoselect) status: no carrier nd6 options=1 -- You are receiving this mail because: You are the assignee for the bug.