- 论坛徽章:
- 0
|
本帖最后由 lofeng410 于 2012-10-18 23:37 编辑
for (i = 0; i < dev->num_tx_queues; i++) {
struct netdev_queue *txq;
txq = netdev_get_tx_queue(dev, i);
/*
* old device drivers set dev->trans_start
*/
trans_start = txq->trans_start ? : dev->trans_start;
if (netif_tx_queue_stopped(txq) &&
time_after(jiffies, (trans_start +
dev->watchdog_timeo))) {
some_queue_timedout = 1;
break;
}
}
这里检查发送队列的状态,如果队列处于__QUEUE_STATE_XOFF才会继续往下走。
但是我在netif_tx_stop_queue()设置函数中添加了打印信息,但是一直没有打印我添加的调试信息。
而发送传输超时已经触发了多次(大于20+)。
究竟在哪个地方动了这个标志呢?求大牛指点,多谢
static inline void netif_tx_stop_queue(struct netdev_queue *dev_queue)
{
set_bit(__QUEUE_STATE_XOFF, &dev_queue->state);
}
|
|