[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.