Subject: Question on behavior of tg3_self_test() (ethtool -t on tg3 driver)

From: Douglas Miller <[email-masked]>
Date: Tue, 11 Aug 2015 10:59:45 -0500

(Sorry if you got several duplicates, am trying to work through rejected 
messages due to supposed HTML content)

The following behavior is being observed when running "ethtool -t <dev> 
offline" on ports on the Broadcom BCM5719 adapter (tg3 driver). The 
ports have wrap plugs on them, although I'm not sure why that would have 
any affect.

The test "ethtool -t <dev> offline" was being running continuously. The 
first invocation passes, all subsequent ones fail (at least in the "link 
test" step) after ~20 second timeout. When running the test once, I see 
the following: Looking at /var/log/messages, I see a "Link is down" 
message during the test. Then, 20 seconds after the test completes, 
there is a "Link is up..." message. If I wait for the "Link is up..." 
message I can run the test without problems. If the test is run again 
while the link is still down, it fails and seems to delay the "link up" 
by an additional 20 seconds.

If I run "external_lb" instead of "offline", I am able to run the test 
repeatedly without error. So it seems that some action taken in the 
"external_lb" case actually "repairs" the port. But the "external_lb" 
test also exhibits the link-down for 20 seconds symptom, although it can 
been run while the link is considered "down" without failure.

The first question is whether we should expect to be able to run 
"ethtool -t <dev> offline" continually, with no delay between runs. I 
presume this is supported.

Second question, I would like someone with experience with the tg3 
driver and this adapter to comment on what might be done to fix this. My 
first, simple, guess would be move the "tg3_phy_lpbk_set(tp, 0, true);" 
setting (in tg3_test_loopback()) to be done for both "offline" and 
"external_lb" cases. I am awaiting time on a system with this adapter in 
order to try out some possible fixes and/or debug what might be 
wrong/different with the configuration after the "offline" test.

I would appreciate any help,
Thanks,
Doug Miller