• Konstantin Khlebnikov's avatar
    e1000e: fix cyclic resets at link up with active tx · 0f9e980b
    Konstantin Khlebnikov authored
    I'm seeing series of e1000e resets (sometimes endless) at system boot
    if something generates tx traffic at this time. In my case this is
    netconsole who sends message "e1000e 0000:02:00.0: Some CPU C-states
    have been disabled in order to enable jumbo frames" from e1000e itself.
    As result e1000_watchdog_task sees used tx buffer while carrier is off
    and start this reset cycle again.
    
    [   17.794359] e1000e: eth1 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None
    [   17.794714] IPv6: ADDRCONF(NETDEV_CHANGE): eth1: link becomes ready
    [   22.936455] e1000e 0000:02:00.0 eth1: changing MTU from 1500 to 9000
    [   23.033336] e1000e 0000:02:00.0: Some CPU C-states have been disabled in order to enable jumbo frames
    [   26.102364] e1000e: eth1 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None
    [   27.174495] 8021q: 802.1Q VLAN Support v1.8
    [   27.174513] 8021q: adding VLAN 0 to HW filter on device eth1
    [   30.671724] cgroup: cgroup: disabling cgroup2 socket matching due to net_prio or net_cls activation
    [   30.898564] netpoll: netconsole: local port 6666
    [   30.898566] netpoll: netconsole: local IPv6 address 2a02:6b8:0:80b:beae:c5ff:fe28:23f8
    [   30.898567] netpoll: netconsole: interface 'eth1'
    [   30.898568] netpoll: netconsole: remote port 6666
    [   30.898568] netpoll: netconsole: remote IPv6 address 2a02:6b8:b000:605c:e61d:2dff:fe03:3790
    [   30.898569] netpoll: netconsole: remote ethernet address b0:a8:6e:f4:ff:c0
    [   30.917747] console [netcon0] enabled
    [   30.917749] netconsole: network logging started
    [   31.453353] e1000e 0000:02:00.0: Some CPU C-states have been disabled in order to enable jumbo frames
    [   34.185730] e1000e 0000:02:00.0: Some CPU C-states have been disabled in order to enable jumbo frames
    [   34.321840] e1000e 0000:02:00.0: Some CPU C-states have been disabled in order to enable jumbo frames
    [   34.465822] e1000e 0000:02:00.0: Some CPU C-states have been disabled in order to enable jumbo frames
    [   34.597423] e1000e 0000:02:00.0: Some CPU C-states have been disabled in order to enable jumbo frames
    [   34.745417] e1000e 0000:02:00.0: Some CPU C-states have been disabled in order to enable jumbo frames
    [   34.877356] e1000e 0000:02:00.0: Some CPU C-states have been disabled in order to enable jumbo frames
    [   35.005441] e1000e 0000:02:00.0: Some CPU C-states have been disabled in order to enable jumbo frames
    [   35.157376] e1000e 0000:02:00.0: Some CPU C-states have been disabled in order to enable jumbo frames
    [   35.289362] e1000e 0000:02:00.0: Some CPU C-states have been disabled in order to enable jumbo frames
    [   35.417441] e1000e 0000:02:00.0: Some CPU C-states have been disabled in order to enable jumbo frames
    [   37.790342] e1000e: eth1 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None
    
    This patch flushes tx buffers only once when carrier is off
    rather than at each watchdog iteration.
    Signed-off-by: default avatarKonstantin Khlebnikov <khlebnikov@yandex-team.ru>
    Tested-by: default avatarAaron Brown <aaron.f.brown@intel.com>
    Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
    0f9e980b
netdev.c 214 KB