Linux.ChinaUnix.net
ChinaUnix | Linux首页 | 新闻 | 博客 | 文章 | 专栏 | 新手 | 方案 | 图书 | 下载 | 人才 | 手册 | wiki | 搜索     
Linux论坛
  会员: 密码: 免费注册 | 忘记密码 | 会员登录 | 搜索 | 帮助 


精彩推荐帖子 负载过大时,e1000_watchdog 反复 UP、DOWN 的问题
首页 » CU论坛 » Linux » 汇总贴列表 » 服务器应用 »  
[打印] [订阅] [收藏] [推荐给朋友] [本帖文本页]
版主 platinum (何时才能飞)
广告杀手-法王
人生的转折



UID:26424
注册:2002-11-2
最后登录: 2008-07-19
帖子:19951
精华:22

可用积分:22907
信誉积分:105
专家积分:0 (本版)

状态:...保密...

[资料] [站内短信] [Blog]


顶部
1楼 发表于 2005-10-18 11:48 
做 NAT 服务器,当负载过大时,总出现

QUOTE:
Oct 17 14:56:04 server kernel: e1000: eth0: e1000_watchdog: NIC Link is Down
Oct 17 14:56:08 server kernel: e1000: eth0: e1000_watchdog: NIC Link is Up 100 Mbps Full Duplex
Oct 17 14:56:09 server kernel: e1000: eth0: e1000_watchdog: NIC Link is Down
Oct 17 14:56:15 server kernel: e1000: eth0: e1000_watchdog: NIC Link is Up 100 Mbps Full Duplex

网卡反复 UP、DOWN,甚至导致系统自动重启
这个 e1000_watchdog 是做什么用的?为何有如此现象?如何不让他自动 UP、DOWN ?



您对本贴的看法:鲜花[1] 臭蛋[0]

__________________________________

当我们在为生活而疲惫奔波的时候
生活却渐渐离我们远去
find our way, find our style
CU可用积分兑换Linux/Unix精品图书 |《Ubuntu标准教程》书评获奖名单公布 | 致电800-858-2903,了解DELL如何为你量身订制笔记本
yidou   帅哥
光明使者




UID:112728
注册:2003-11-18
最后登录: 2008-07-19
帖子:898
精华:0

可用积分:873
信誉积分:100
专家积分:0 (本版)

来自:Shanghai, China
状态:...保密...

[资料] [站内短信] [Blog]


顶部
2楼 发表于 2005-10-18 12:03 
负载过大时,e1000_watchdog 反复 UP、DOWN 的问题



static void
e1000_watchdog(unsigned long data)
{
        struct e1000_adapter *adapter = (struct e1000_adapter *) data;
        struct net_device *netdev = adapter->;netdev;
        struct e1000_desc_ring *txdr = &adapter->;tx_ring;
        unsigned int i;
        uint32_t link;

        e1000_check_for_link(&adapter->;hw);

        if((adapter->;hw.media_type == e1000_media_type_internal_serdes) &&
           !(E1000_READ_REG(&adapter->;hw, TXCW) & E1000_TXCW_ANE))
                link = !adapter->;hw.serdes_link_down;
        else
                link = E1000_READ_REG(&adapter->;hw, STATUS) & E1000_STATUS_LU;

        if(link) {
                if(!netif_carrier_ok(netdev)) {
                        e1000_get_speed_and_duplex(&adapter->;hw,
                                                   &adapter->;link_speed,
                                                   &adapter->;link_duplex);

                        DPRINTK(LINK, INFO, "NIC Link is Up %d Mbps %s\n",
                               adapter->;link_speed,
                               adapter->;link_duplex == FULL_DUPLEX ?
                               "Full Duplex" : "Half Duplex");

                        netif_carrier_on(netdev);
                        netif_wake_queue(netdev);
                        mod_timer(&adapter->;phy_info_timer, jiffies + 2 * HZ);
                        adapter->;smartspeed = 0;
                }
        } else {
                if(netif_carrier_ok(netdev)) {
                        adapter->;link_speed = 0;
                        adapter->;link_duplex = 0;
                        DPRINTK(LINK, INFO, "NIC Link is Down\n");
                        netif_carrier_off(netdev);
                        netif_stop_queue(netdev);
                        mod_timer(&adapter->;phy_info_timer, jiffies + 2 * HZ);
                }

                e1000_smartspeed(adapter);
        }

        e1000_update_stats(adapter);

        adapter->;hw.tx_packet_delta = adapter->;stats.tpt - adapter->;tpt_old;
        adapter->;tpt_old = adapter->;stats.tpt;
        adapter->;hw.collision_delta = adapter->;stats.colc - adapter->;colc_old;
        adapter->;colc_old = adapter->;stats.colc;
       
        adapter->;gorcl = adapter->;stats.gorcl - adapter->;gorcl_old;
        adapter->;gorcl_old = adapter->;stats.gorcl;
        adapter->;gotcl = adapter->;stats.gotcl - adapter->;gotcl_old;
        adapter->;gotcl_old = adapter->;stats.gotcl;

        e1000_update_adaptive(&adapter->;hw);

        if(!netif_carrier_ok(netdev)) {
                if(E1000_DESC_UNUSED(txdr) + 1 < txdr->;count) {
                        /* We've lost link, so the controller stops DMA,
                         * but we've got queued Tx work that's never going
                         * to get done, so reset controller to flush Tx.
                         * (Do the reset outside of interrupt context). */
                        schedule_work(&adapter->;tx_timeout_task);
                }
        }

        /* Dynamic mode for Interrupt Throttle Rate (ITR) */
        if(adapter->;hw.mac_type >;= e1000_82540 && adapter->;itr == 1) {
                /* Symmetric Tx/Rx gets a reduced ITR=2000; Total
                 * asymmetrical Tx or Rx gets ITR=8000; everyone
                 * else is between 2000-8000. */
                uint32_t goc = (adapter->;gotcl + adapter->;gorcl) / 10000;
                uint32_t dif = (adapter->;gotcl >; adapter->;gorcl ?
                        adapter->;gotcl - adapter->;gorcl :
                        adapter->;gorcl - adapter->;gotcl) / 10000;
                uint32_t itr = goc >; 0 ? (dif * 6000 / goc + 2000) : 8000;
                E1000_WRITE_REG(&adapter->;hw, ITR, 1000000000 / (itr * 256));
        }

        /* Cause software interrupt to ensure rx ring is cleaned */
        E1000_WRITE_REG(&adapter->;hw, ICS, E1000_ICS_RXDMT0);

        /* Early detection of hung controller */
        i = txdr->;next_to_clean;
        if(txdr->;buffer_info[i].dma &&
           time_after(jiffies, txdr->;buffer_info[i].time_stamp + HZ) &&
           !(E1000_READ_REG(&adapter->;hw, STATUS) & E1000_STATUS_TXOFF))
                netif_stop_queue(netdev);

        /* Reset the timer */
        mod_timer(&adapter->;watchdog_timer, jiffies + 2 * HZ);
}

[ 本帖最后由 platinum 于 2005-11-3 14:24 编辑 ]



您对本贴的看法:鲜花[0] 臭蛋[0]
CU可用积分兑换Linux/Unix精品图书 |《Ubuntu标准教程》书评获奖名单公布 | 致电800-858-2903,了解DELL如何为你量身订制笔记本
版主 platinum (何时才能飞)
广告杀手-法王
人生的转折



UID:26424
注册:2002-11-2
最后登录: 2008-07-19
帖子:19951
精华:22

可用积分:22907
信誉积分:105
专家积分:0 (本版)

状态:...保密...

[资料] [站内短信] [Blog]


顶部
3楼 发表于 2005-10-18 12:19 
负载过大时,e1000_watchdog 反复 UP、DOWN 的问题



if((adapter->;hw.media_type == e1000_media_type_internal_serdes) &&
  !(E1000_READ_REG(&adapter->;hw, TXCW) & E1000_TXCW_ANE))
link = !adapter->;hw.serdes_link_down;
else
link = E1000_READ_REG(&adapter->;hw, STATUS) & E1000_STATUS_LU;

这段话什么意思?什么情况会导致 link = 0 ?
如果删除了 else 后面的东西重新编译驱动,会不会有副作用?



您对本贴的看法:鲜花[0] 臭蛋[0]

__________________________________

当我们在为生活而疲惫奔波的时候
生活却渐渐离我们远去
find our way, find our style
CU可用积分兑换Linux/Unix精品图书 |《Ubuntu标准教程》书评获奖名单公布 | 致电800-858-2903,了解DELL如何为你量身订制笔记本
colddawn
光明使者




UID:143873
注册:2004-3-19
最后登录: 2008-03-17
帖子:996
精华:0

可用积分:1001
信誉积分:100
专家积分:0 (本版)

状态:...离线...

[资料] [站内短信] [Blog]


顶部
4楼 发表于 2005-10-18 12:56 
负载过大时,e1000_watchdog 反复 UP、DOWN 的问题

watchdog这个好像是检测到坏桢认为可能硬件出现故障复位硬件,不过e1000吃不住流量的情况应该不大,估计是线制作的不合格导致大流量时坏桢严重,或者有电气干扰等。



您对本贴的看法:鲜花[0] 臭蛋[0]
CU可用积分兑换Linux/Unix精品图书 |《Ubuntu标准教程》书评获奖名单公布 | 致电800-858-2903,了解DELL如何为你量身订制笔记本
colddawn
光明使者




UID:143873
注册:2004-3-19
最后登录: 2008-03-17
帖子:996
精华:0

可用积分:1001
信誉积分:100
专家积分:0 (本版)

状态:...离线...

[资料] [站内短信] [Blog]


顶部
5楼 发表于 2005-10-18 12:58 
负载过大时,e1000_watchdog 反复 UP、DOWN 的问题

对了,ifconfig看一下是不是相应网卡出现很多errors的包



您对本贴的看法:鲜花[0] 臭蛋[0]
CU可用积分兑换Linux/Unix精品图书 |《Ubuntu标准教程》书评获奖名单公布 | 致电800-858-2903,了解DELL如何为你量身订制笔记本
版主 platinum (何时才能飞)
广告杀手-法王
人生的转折



UID:26424
注册:2002-11-2
最后登录: 2008-07-19
帖子:19951
精华:22

可用积分:22907
信誉积分:105
专家积分:0 (本版)

状态:...保密...

[资料] [站内短信] [Blog]


顶部
6楼 发表于 2005-10-18 13:11 
负载过大时,e1000_watchdog 反复 UP、DOWN 的问题

很奇怪呢,RX-ERR RX-DRP RX-OVR,这三项都是 0
是这样的,这台机器上还运行其他服务,CPU 一直比较高,会不会是没有过多的 CPU 来负责处理数据包造成的?

还有,我如果修改源代码,注释掉硬件复位那段代码可不可以?会不会有副作用?



您对本贴的看法:鲜花[0] 臭蛋[0]

__________________________________

当我们在为生活而疲惫奔波的时候
生活却渐渐离我们远去
find our way, find our style
CU可用积分兑换Linux/Unix精品图书 |《Ubuntu标准教程》书评获奖名单公布 | 致电800-858-2903,了解DELL如何为你量身订制笔记本
wheel   帅哥
法师



UID:40417
注册:2003-1-20
最后登录: 2008-07-17
帖子:5105
精华:9

可用积分:4764
信誉积分:110
专家积分:0 (本版)

来自:福建省莆田
状态:...离线...

[资料] [站内短信] [Blog]


顶部
7楼 发表于 2005-10-18 14:38 
负载过大时,e1000_watchdog 反复 UP、DOWN 的问题

cat /proc/interrupts  看下是否和这相似,注释掉硬件复位那段代码没问题,
          CPU0       CPU1       CPU2       CPU3
0:  347275720  347745526  340396987  340996245    IO-APIC-edge  timer
1:        284        789        878        556    IO-APIC-edge  i8042
8:          0          0          0          1    IO-APIC-edge  rtc
9:          0          0          0          0   IO-APIC-level  acpi
14:          1          0         20         19    IO-APIC-edge  ide0
15:      87104     399199       5819     328406    IO-APIC-edge  libata
169:          0          0          0          0   IO-APIC-level  uhci_hcd
177:          0          0          0          0   IO-APIC-level  uhci_hcd
185:          0          0          0          0   IO-APIC-level  ehci_hcd
209:     186220    5466568     211081    5950435   IO-APIC-level  ioc0
217:   27184131          0          0        157   IO-APIC-level  eth0
225:          0          0   51742411         29   IO-APIC-level  eth1
NMI:          0          0          0          0
LOC: 1376397708 1376397707 1376397706 1376397705
ERR:          0
MIS:          0



您对本贴的看法:鲜花[0] 臭蛋[0]

__________________________________

郵政編碼:100054
地址:中國 北京市宣武區廣安門南街48號中彩大廈
5层509室
CU可用积分兑换Linux/Unix精品图书 |《Ubuntu标准教程》书评获奖名单公布 | 致电800-858-2903,了解DELL如何为你量身订制笔记本
版主 platinum (何时才能飞)
广告杀手-法王
人生的转折



UID:26424
注册:2002-11-2
最后登录: 2008-07-19
帖子:19951
精华:22

可用积分:22907
信誉积分:105
专家积分:0 (本版)

状态:...保密...

[资料] [站内短信] [Blog]


顶部
8楼 发表于 2005-10-18 14:41 
负载过大时,e1000_watchdog 反复 UP、DOWN 的问题



QUOTE:
           CPU0
  0:    5208209    IO-APIC-edge  timer
  1:          2    IO-APIC-edge  keyboard
  4:         30    IO-APIC-edge  serial
  8:          1    IO-APIC-edge  rtc
  9:          0   IO-APIC-level  acpi
15:     108463    IO-APIC-edge  ide1
21:   15700851   IO-APIC-level  eth0
22:   15716884   IO-APIC-level  eth1
NMI:          0
LOC:    5208446
ERR:          0
MIS:          0

这样正常吗?



您对本贴的看法:鲜花[0] 臭蛋[0]

__________________________________

当我们在为生活而疲惫奔波的时候
生活却渐渐离我们远去
find our way, find our style
CU可用积分兑换Linux/Unix精品图书 |《Ubuntu标准教程》书评获奖名单公布 | 致电800-858-2903,了解DELL如何为你量身订制笔记本
jackylau   帅哥
大天使



UID:37541
注册:2003-1-2
最后登录: 2008-07-15
帖子:1943
精华:6

可用积分:1893
信誉积分:100
专家积分:0 (本版)

来自:杭州
状态:...离线...

[资料] [站内短信] [Blog]


顶部
9楼 发表于 2005-10-18 15:17 
负载过大时,e1000_watchdog 反复 UP、DOWN 的问题

不会是负载过大的原因.我们单位做iptv,负荷比你重多了吧,也是e1000



您对本贴的看法:鲜花[0] 臭蛋[0]

__________________________________

jackylau's Blog
CU可用积分兑换Linux/Unix精品图书 |《Ubuntu标准教程》书评获奖名单公布 | 致电800-858-2903,了解DELL如何为你量身订制笔记本
q1208c   帅哥
法王



UID:94600
注册:2003-9-8
最后登录: 2008-07-19
帖子:14591
精华:4

可用积分:6695
信誉积分:100
专家积分:0 (本版)

状态:...保密...

[资料] [站内短信] [Blog]


顶部
10楼 发表于 2005-10-18 15:22 
负载过大时,e1000_watchdog 反复 UP、DOWN 的问题

e1000 是千兆的网卡, 100M应该没事呀?
watchdog 好象是用来检测什么东东的一个计时, 我觉得是不是你的 switch 受不了呀? 因为 switch 如果不行了, 网卡一样会认为网络 down 呀.



您对本贴的看法:鲜花[0] 臭蛋[0]

__________________________________

如果你发现我的回复跟你说的不是一回事, 那么, 偶是来抬杠的. :D
如果你发现我的回复正好是你想知道的, 那么, 是我蒙对了. :P



CU可用积分兑换Linux/Unix精品图书 |《Ubuntu标准教程》书评获奖名单公布 | 致电800-858-2903,了解DELL如何为你量身订制笔记本

首页 » CU论坛 » Linux » 汇总贴列表 » 服务器应用 »

 


Copyright © 2001-2008 ChinaUnix.net All Rights Reserved     联系我们:

感谢所有关心和支持过ChinaUnix的朋友们    转载本站内容请注明原作者名及出处

京ICP证041476号


清除 Cookies - Linux时代 - Archiver - WAP - TOP

Processed in 0.047074 second(s), 8 queries , Gzip enabled