tg3_tx_timeout() resets mii settings

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Broadcom NIC looses mii settings if reset_task() is called in tg3
driver.  tg3_tx_timeout() calls reset_task as a watchdog function when
the driver thinks the card is blotto.  This will result in failed port
negotiation and a port mismatch if switch port is forced 100/full.

Everyone seems to set their switches to 100/full due to crappy Sun hme
drivers/cards and old buggy intel drivers under NT.  The place I work is
no exception.  All our switch ports are set to 100/full.  I know this is
stupid but what can one person do?  The advice on this list is usually
to use ethtool / mii-tool to force 100/full in some init script (which
is what I do from /etc/init.d/network after ifup).

However, if at any point the driver should find the card in a timeout
state, a watchdog function will be called and any settings made with
mii-tool or ethtool will be lost.  You'll see a kernel error message in
the logs like this:

Sep  3 11:59:40 toon15 kernel: tg3: eth1: transmit timed out, resetting

Shouldn't the tg3 driver restore the previous mii_if_info or something
when the card is watchdog reset?  Why is tg3_tx_timeout() called so
often?  Does loading the module with params to force 100/full not result
in loss of setting when reset?

This happens about once every 14 days or so on a loaded system that has
a broadcom chip on board.  We run all Compaq/HP DLxxx G2/3, x86
hardware, which all come with a pair of broadcom chips onboard.

It would be great if in the next version of the tg3 driver, all the
possible module parameters were documented.  Maybe even printed from
modinfo?

PS: As a side effect, when the tg3 NIC is reset, the switch port goes
into a listen state for about 30 seconds to make sure it's not a trunk
port.  This results in no network traffic for 30 seconds, regardless of
port negotiation.  At least this is the case on Cisco switches when
spantree portfast isn't enabled (the default).  This is an issue if you
use mii-tool or ethtool to set anything before NFS mounting as the
initial RPC packets will quietly be dropped and nfs mounts will fail
with random errors based on timing.




[Index of Archives]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Linux Wireless]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]

  Powered by Linux