You are not logged in.

#1 2013-11-27 22:07:49

graysky
Wiki Maintainer
From: :wq
Registered: 2008-12-01
Posts: 10,606
Website

e1000e Detected Hardware Unit Hang

Seems harmless but still searching for reason/fix.
Motherboard: Asus H87I-Plus with an i3 Haswell chip.  Upon booting (3.12.1-3) I get the following to the tty and to dmesg:

[    7.355338] e1000e 0000:00:19.0 eno1: Detected Hardware Unit Hang:
  TDH                  <0>
  TDT                  <3>
  next_to_use          <3>
  next_to_clean        <0>
buffer_info[next_to_clean]:
  time_stamp           <fffea64e>
  next_to_watch        <0>
  jiffies              <fffea90e>
  next_to_watch.status <0>
MAC Status             <40080080>
PHY Status             <7949>
PHY 1000BASE-T Status  <0>
PHY Extended Status    <3000>
PCI Status             <10>
[    9.355716] e1000e 0000:00:19.0 eno1: Detected Hardware Unit Hang:
  TDH                  <0>
  TDT                  <3>
  next_to_use          <3>
  next_to_clean        <0>
buffer_info[next_to_clean]:
  time_stamp           <fffea64e>
  next_to_watch        <0>
  jiffies              <fffeab66>
  next_to_watch.status <0>
MAC Status             <40080081>
PHY Status             <7949>
PHY 1000BASE-T Status  <4800>
PHY Extended Status    <3000>
PCI Status             <10>
[    9.536923] e1000e: eno1 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: Rx/Tx

Upstream bug?  Any advice is appreciated.  Similar thread without a solution: https://bbs.archlinux.org/viewtopic.php?id=162841


CPU-optimized Linux-ck packages @ Repo-ck  • AUR packagesZsh and other configs

Offline

#2 2013-11-28 15:42:21

pigiron
Member
From: USA
Registered: 2009-07-14
Posts: 150

Re: e1000e Detected Hardware Unit Hang

I dug around in the code for this because I (and many others) have this device and I didn't want it to bite me when my Gentoo boxes finally get to this kernel version years from now.

I only got so far, but it looks like the Intel e1000e driver has an insanely complicated bit of code that attempts to check if the transmit data is "stuck" and it throws those errors if it thinks it is. How often it checks depends on the data speed (10/100/1000) with 1000 being the most often.

I'm not sure about that other post, but in your case it appears to be a false positive, because first of all you say it happens at boot time. Even more telling is the "MAC Status". I think I'm reading those bits correctly when say that you're running 1000 full duplex, but here's the kicker... it says that the link is not even up at the time both of those errors were posted.

I'm not sure that changing any module or ethtool settings will affect this, so you may want to try hitting up the experts at http://sourceforge.net/projects/e1000/s … rce=navbar and/or the  e1000-devel@lists.sourceforge.net  mailing list to see what they say (if you can get their attention).

[Edit to add:]
It just smacked me in the face that you have Flow Control turned on. Try turning that off, especially if your router doesn't support it.

Last edited by pigiron (2013-11-28 16:00:28)

Offline

#3 2013-11-29 11:40:06

graysky
Wiki Maintainer
From: :wq
Registered: 2008-12-01
Posts: 10,606
Website

Re: e1000e Detected Hardware Unit Hang

@pigiron - Thanks for the diligent response.  I should add that this only happens when I use netctl with the following line; if I comment it out, and set the mtu size manually, no errors.

ExecUpPost='/usr/bin/ip link set eno1 mtu 2000'

As to your comment on flow control... apparently the kernel has it on by default (true on my other boxes using e1000e).  In my attempt to disable it, I followed this wiki article addng this to /etc/modprobe.d/options.conf but upon a reboot, it doesn't seem to be honored:

options e1000 FlowControl=0

And

% dmesg
...
[    8.344763] e1000e 0000:00:19.0 eno1: Detected Hardware Unit Hang:
  TDH                  <0>
  TDT                  <2>
  next_to_use          <2>
  next_to_clean        <0>
buffer_info[next_to_clean]:
  time_stamp           <fffea730>
  next_to_watch        <0>
  jiffies              <fffeaa38>
  next_to_watch.status <0>
MAC Status             <40080080>
PHY Status             <7949>
PHY 1000BASE-T Status  <800>
PHY Extended Status    <3000>
PCI Status             <10>
[    9.598823] e1000e: eno1 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: Rx/Tx

EDIT:  Tried this kernel parameter and got the same result -- "Flow Control: Rx/Tx."

options "root=/dev/sda3 ... e1000.FlowControl=0"

Last edited by graysky (2013-11-29 11:43:53)


CPU-optimized Linux-ck packages @ Repo-ck  • AUR packagesZsh and other configs

Offline

Board footer

Powered by FluxBB