Environment:
OpenBSD 6.6 (GENERIC.MP) #4: Wed Jan 15 10:55:43 MST 2020
[email protected]:/usr/src/sys/arch/amd64/compile/GENERIC.MP
bios0: "MKQ7710H.86A.0054.2012.1120.1444" date 11/20/2012
bios0: Intel Corporation DQ77MK
em0 at pci0 dev 25 function 0 "Intel 82579LM" rev 0x04: msi
em1 at pci2 dev 0 function 0 "Intel 82574L" rev 0x00: msi
Description:
The network hangs for several seconds when either em0 or em1 is
taken up or down, it happens whether this is achieved with ifconfig
or when a cable is removed or inserted into the port. Nothing shows
up in dmesg when this happens. Note that it hangs both interfaces
and not just the one that's being manipulated.
Another problem happens when the driver prints the following:
em1: watchdog: head 274 tail 339 TDH 339 TDT 274
At this moment ingress traffic is interrupted and never resumes
while the kernel continues to print watchdog messages every now and
then. The other interface continues to work but hangs and
resumes in the fashion described in the first problem. Switching the
interface down and up doesn't resume the network, rebooting is the
only solution found yet.
The DQ77MK has a NIC set to be used for Intel AMT by default, it is
disabled so that it can be used as a standard Ethernet NIC.
The two NICs are connected to a switch with isolated VLANs.
The machine is used as a router, it runs bgpd and sysctl is only tuned
with:
net.inet.ip.forwarding=1
net.inet6.ip6.forwarding=1
Disabling pf has no effect.
Debug on both interfaces doesn't produce further details.
# pcidump -v 2:0:0
2:0:0: Intel 82574L
0x0000: Vendor ID: 8086, Product ID: 10d3
0x0004: Command: 0007, Status: 0010
0x0008: Class: 02 Network, Subclass: 00 Ethernet,
Interface: 00, Revision: 00
0x000c: BIST: 00, Header Type: 00, Latency Timer: 00,
Cache Line Size: 10
0x0010: BAR mem 32bit addr: 0xf7c00000/0x00020000
0x0014: BAR empty (00000000)
0x0018: BAR io addr: 0x0000e000/0x0020
0x001c: BAR mem 32bit addr: 0xf7c20000/0x00004000
0x0020: BAR empty (00000000)
0x0024: BAR empty (00000000)
0x0028: Cardbus CIS: 00000000
0x002c: Subsystem Vendor ID: 8086 Product ID: 2035
0x0030: Expansion ROM Base Address: 00000000
0x0038: 00000000
0x003c: Interrupt Pin: 01 Line: 03 Min Gnt: 00 Max Lat: 00
0x00c8: Capability 0x01: Power Management
State: D0
0x00d0: Capability 0x05: Message Signalled Interrupts (MSI)
Enabled: yes
0x00e0: Capability 0x10: PCI Express
Link Speed: 2.5 / 2.5 GT/s, Link Width: x1 / x1
0x0100: Enhanced Capability 0x01: Advanced Error Reporting
0x0140: Enhanced Capability 0x03: Device Serial Number
Serial Number: 7054d2ffff44f836
0x00a0: Capability 0x11: Extended Message Signalled Interrupts
(MSI-X) Enabled: no; table size 5 (BAR 3:0)
# pcidump -v 0:25:0
0:25:0: Intel 82579LM
0x0000: Vendor ID: 8086, Product ID: 1502
0x0004: Command: 0007, Status: 0010
0x0008: Class: 02 Network, Subclass: 00 Ethernet,
Interface: 00, Revision: 04
0x000c: BIST: 00, Header Type: 00, Latency Timer: 00,
Cache Line Size: 00
0x0010: BAR mem 32bit addr: 0xf7d00000/0x00020000
0x0014: BAR mem 32bit addr: 0xf7d35000/0x00001000
0x0018: BAR io addr: 0x0000f080/0x0020
0x001c: BAR empty (00000000)
0x0020: BAR empty (00000000)
0x0024: BAR empty (00000000)
0x0028: Cardbus CIS: 00000000
0x002c: Subsystem Vendor ID: 8086 Product ID: 2035
0x0030: Expansion ROM Base Address: 00000000
0x0038: 00000000
0x003c: Interrupt Pin: 01 Line: 05 Min Gnt: 00 Max Lat: 00
0x00c8: Capability 0x01: Power Management
State: D0
0x00d0: Capability 0x05: Message Signalled Interrupts (MSI)
Enabled: yes
0x00e0: Capability 0x13: PCI Advanced Features