[ARM9、LPC] imx287 eth0: tx queue full!求助如何解决

[复制链接]
1587|3
 楼主| lovegu0713 发表于 2016-1-19 19:23 | 显示全部楼层 |阅读模式
本帖最后由 lovegu0713 于 2016-1-19 19:25 编辑

使用的linux内核2.6.35的
系统用的是debian 7的
平台是飞思卡尔的imx287 arm9

运行的时候偶尔会出现 eth0: tx queue full!,出现该问题时,则网络连不通了

请教原因以及解决方法
阿南 发表于 2016-1-20 09:29 | 显示全部楼层
发送队列满。
这个问题应该是i.mx特有的。
试试修改下fec.c,fec_timeout函数:
static void fec_timeout(struct net_device *dev)
{
struct fec_enet_private *fep = netdev_priv(dev);
dev->stats.tx_errors++;
netif_stop_queue(dev);
fec_restart(dev, fep->full_duplex);
/* prevent tx timeout */
dev->trans_start = jiffies;
netif_wake_queue(dev);
}
 楼主| lovegu0713 发表于 2016-1-21 16:26 | 显示全部楼层
阿南 发表于 2016-1-20 09:29
发送队列满。
这个问题应该是i.mx特有的。
试试修改下fec.c,fec_timeout函数:

谢谢您的回复,当我遇到eth0: tx queue full!的时候,只要我通过终端 使用指令:service networking restart 重启下网络,网络就可以PING通 正常使用了。想问以下您,是不是当发送队列满了的时候,内核没有响应该中断,或者是内有做任何处理呀, 所以才会一直打印eth0: tx queue full!且网络不通了?
还有 static void fec_timeout(struct net_device *dev) 这个函数都什么情况下回进入那?
阿南 发表于 2016-1-21 17:38 | 显示全部楼层
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

3

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部