Bug #1171

4) watchdog timeouts after a short time

Added by josepht about 6 years ago. Updated almost 6 years ago.

Status:ClosedStart date:
Priority:NormalDue date:
Assignee:-% Done:

0%

Category:-
Target version:-

Description

I upgraded my 2.1-DEVELOPMENT box from 2.1-DEVELOPMENT from several
months ago and my re(4) a RTL8101E card only works for a few seconds
after boot. After which I get watchdog timeouts and am unable to ping
a remote host. I was unable to get any information from tcpdump.
Here is the relevant verbose dmesg output and sysctl output. I have
tried disabling rx/tx csum and vlan{mtu,hwtagging} all to no avail. Let
me know what further info is needed.

re0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
options=1b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING>
inet6 fe80::2a0:d1ff:fe60:25a3%re0 prefixlen 64 scopeid 0x1
inet x.x.x.x netmask 0xffffffc0 broadcast x.x.x.x
ether 00:a0:d1:60:25:a3
media: Ethernet autoselect (100baseTX <full-duplex>)
status: active

Joe

re_dmesg_verbose.txt Magnifier (773 Bytes) josepht, 12/02/2008 11:03 PM

re_sysctl.txt Magnifier (90 Bytes) josepht, 12/02/2008 11:03 PM

re.diff Magnifier (380 Bytes) sepherosa, 12/03/2008 03:36 AM

History

#1 Updated by sepherosa about 6 years ago

Does sysctl hw.re0.imtype=0 help?

Best Regards,
sephe

#2 Updated by josepht about 6 years ago

I failed to mention I tried that as well. It did not work.

Thanks,
Joe

#3 Updated by sepherosa about 6 years ago

Try the attached patch.

Best Regards,
sephe

#4 Updated by josepht about 6 years ago

That works. I'm not sure if that needs be removed for all cards to I
made this patch. Also I'm not sure if the 8102 cards need this or
not. Thanks for your help on this.

Joe

diff --git a/sys/dev/netif/re/if_re.c b/sys/dev/netif/re/if_re.c
index 5f29074..3f65cee 100644
--- a/sys/dev/netif/re/if_re.c
+++ b/sys/dev/netif/re/if_re.c
@@ -2639,8 +2639,11 @@ re_init(void *xsc)
pcie_set_max_readrq(sc->re_dev,
PCIEM_DEVCTL_MAX_READRQ_512);
} else {
- pcie_set_max_readrq(sc->re_dev,
- PCIEM_DEVCTL_MAX_READRQ_4096);
+ if (sc->re_hwrev != RE_HWREV_8101E1 &&
+ sc->re_hwrev != RE_HWREV_8101E2) {
+ pcie_set_max_readrq(sc->re_dev,
+ PCIEM_DEVCTL_MAX_READRQ_4096);
+ }
}
}

#5 Updated by sepherosa about 6 years ago

Thank you for testing. I think we should not set max read request
size on all 10/100 only NICs. Please test following patch:
http://leaf.dragonflybsd.org/~sephe/re.diff

Best Regards,
sephe

#6 Updated by josepht about 6 years ago

That works.

Thanks,
Joe

#7 Updated by sepherosa almost 6 years ago

committed:
0fa7d7f4db40050e3665ef7072cde53c2fc32847

Also available in: Atom PDF