Joonwoo,
I'm not calling up and down from the OS after click is installed. I'm
simply disconnecting the network cables. It appears to only be affecting the
first link event. Other polling nics continue to work (even if I pull and
reconnect their cables).
I added some debugging to the watchdog handlers, and the watchdog
callback continues to get called for all nics after the first one goes down,
but there is no more watchdog events for the first one (the first one can be
any of the polling nics). So, whatever nic goes down first doesn't ever get a
chance to have its link detected, in the e1000_watchdog_1() function.
Example (output below), I have eth0, eth1, and eth2 polling. I pull
the cable on eth2, you see it drop, but also see the watchdog events stop for
eth2. I then pull eth1 and you see it drop, however you can see the watchdog
callbacks continue for eth1, thus its able to sense a link coming back up. Why
does the first link down event cause that Nic's watchdogs to stop?
e1000_poll_on
e1000_poll_on
e1000_poll_on
e1000: eth0: e1000_watchdog: called on polling adapter.
e1000: eth1: e1000_watchdog: called on polling adapter.
e1000: eth1: e1000_watchdog_1: NIC Link is Down
e1000: eth2: e1000_watchdog: called on polling adapter.
e1000: eth2: e1000_watchdog_1: NIC Link is Down
e1000: eth0: e1000_watchdog: called on polling adapter.
e1000: eth1: e1000_watchdog: called on polling adapter.
e1000: eth2: e1000_watchdog: called on polling adapter.
e1000: eth0: e1000_watchdog: called on polling adapter.
e1000: eth1: e1000_watchdog: called on polling adapter.
e1000: eth1: e1000_watchdog_1: NIC Link is Up 1000 Mbps Full Duplex, Flow
Control: None
e1000: eth2: e1000_watchdog: called on polling adapter.
e1000: eth2: e1000_watchdog_1: NIC Link is Up 1000 Mbps Full Duplex, Flow
Control: None
ToDevice eth0 rejected a packet!
chatter: sniffQueue :: Queue: overflow
e1000: eth0: e1000_watchdog: called on polling adapter.
e1000: eth1: e1000_watchdog: called on polling adapter.
e1000: eth2: e1000_watchdog: called on polling adapter.
e1000: eth0: e1000_watchdog: called on polling adapter.
e1000: eth1: e1000_watchdog: called on polling adapter.
e1000: eth2: e1000_watchdog: called on polling adapter.
e1000: eth0: e1000_watchdog: called on polling adapter.
e1000: eth1: e1000_watchdog: called on polling adapter.
e1000: eth2: e1000_watchdog: called on polling adapter.
e1000: eth0: e1000_watchdog: called on polling adapter.
e1000: eth1: e1000_watchdog: called on polling adapter.
e1000: eth2: e1000_watchdog: called on polling adapter.
e1000: eth0: e1000_watchdog: called on polling adapter.
e1000: eth1: e1000_watchdog: called on polling adapter.
e1000: eth2: e1000_watchdog: called on polling adapter.
ToDevice eth2 rejected a packet!
chatter: outFlows/outputQueue :: Queue: overflow
e1000: eth0: e1000_watchdog: called on polling adapter.
e1000: eth1: e1000_watchdog: called on polling adapter.
e1000: eth2: e1000_watchdog: called on polling adapter.
e1000: eth2: e1000_watchdog_1: NIC Link is Down
< !!!! no more eth2 watchdog callbacks getting called !!!! >
e1000: eth0: e1000_watchdog: called on polling adapter.
e1000: eth1: e1000_watchdog: called on polling adapter.
e1000: eth0: e1000_watchdog: called on polling adapter.
e1000: eth1: e1000_watchdog: called on polling adapter.
e1000: eth0: e1000_watchdog: called on polling adapter.
e1000: eth1: e1000_watchdog: called on polling adapter.
e1000: eth0: e1000_watchdog: called on polling adapter.
e1000: eth1: e1000_watchdog: called on polling adapter.
e1000: eth0: e1000_watchdog: called on polling adapter.
e1000: eth1: e1000_watchdog: called on polling adapter.
e1000: eth1: e1000_watchdog_1: NIC Link is Down
< eth1 goes down, but the watchdogs continue, which is good >
e1000: eth0: e1000_watchdog: called on polling adapter.
e1000: eth1: e1000_watchdog: called on polling adapter.
e1000: eth0: e1000_watchdog: called on polling adapter.
e1000: eth1: e1000_watchdog: called on polling adapter.
e1000: eth0: e1000_watchdog: called on polling adapter.
e1000: eth1: e1000_watchdog: called on polling adapter.
e1000: eth1: e1000_watchdog_1: NIC Link is Up 1000 Mbps Full Duplex, Flow
Control: None
< eth1 comes up, and processing continues >
e1000: eth0: e1000_watchdog: called on polling adapter.
e1000: eth1: e1000_watchdog: called on polling adapter.
e1000: eth0: e1000_watchdog: called on polling adapter.
e1000: eth1: e1000_watchdog: called on polling adapter.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Thomas Paine [EMAIL PROTECTED])}
University of Wisconsin - Eau Claire
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
From: Joonwoo Park [mailto:[EMAIL PROTECTED]
Sent: Monday, October 01, 2007 9:12 PM
To: Paine, Thomas Asa
Cc: [email protected]
Subject: Re: [Click] 7.x e1000 on click 1.6.0 w/ 2.6.19.2 kernel
Hi Thomas,
It's seems you are using PollDevice, am I right?
I couldn't find that problem, which e1000 nic are you using? (eg 82546GB)
While looking for a problem that you posted, I've just found that ifconfig down
& up doesn't work on a interface which is running PollDevice.
Maybe I think It can be related to your problem.
Thanks.
Joonwoo Park (Jason Park)
2007/10/2, Paine, Thomas Asa < [EMAIL PROTECTED]>:
In updating one of my click packages to run under Click 1.6.0 (git
pulled this morning), and after swimming through the Changelogs for the last
year, I got things up and running. However I noticed that the Nic driver, if
the link drops, will not recover unless the click module is removed. My unit
will be handling traffic, but when I pull a network cable, I'll see the
watchdog message for the link going down, but it will not come back up until I
remove the click kernel module.
My production units are running under a ~12/2006 CVS release of 1.5.0
on a 2.6.16.13 kernel, and I *think a 6.x version of the e1000 driver, but they
do not have the problem I described. So, I'm not sure what changes prompted
the problem I'm seeing.
< disconnect network cable cable >
e1000: eth1: e1000_watchdog_1: NIC Link is Down
< restore cable connection, but no further dmesg occurs >
< run click-uninstall >
e1000_poll_off
e1000: eth1: e1000_watchdog_1: NIC Link is Up 1000 Mbps Full Duplex, Flow
Control: None
e1000_poll_off
e1000_poll_off
click: stopping router thread pid 1307
poll e0f7b360: 3684/920934 freed, 1437/460660 allocated
poll e0f7b580: 8779/5325393 freed, 8329/2658970 allocated
click module exiting
click error: 683 outstanding news
Just thought I would post this in case there are some open issues that
I'm not aware of and to get a thread started. I'll be doing some more digging
as well.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Thomas Paine [EMAIL PROTECTED])}
University of Wisconsin - Eau Claire
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
_______________________________________________
click mailing list
[email protected]
https://amsterdam.lcs.mit.edu/mailman/listinfo/click
_______________________________________________
click mailing list
[email protected]
https://amsterdam.lcs.mit.edu/mailman/listinfo/click