作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我对如何测试网络内核模块的 tx_timeout
操作有一些疑问。例如,让我们以《Linux 设备驱动程序》一书第 14 章中的 snull 示例为例。
void snull_tx_timeout (struct net_device *dev)
{
struct snull_priv *priv = (struct snull_priv *) dev->priv;
PDEBUG("Transmit timeout at %ld, latency %ld\n", jiffies,
jiffies - dev->trans_start);
priv->status = SNULL_TX_INTR;
snull_interrupt(0, dev, NULL);
priv->stats.tx_errors++;
netif_wake_queue(dev);
return;
}
及其初始化:
#ifdef HAVE_TX_TIMEOUT
dev->tx_timeout = snull_tx_timeout;
dev->watchdog_timeo = timeout;
#endif
如何强制超时以测试 snull_tx_timeout()
的实现?
我很乐意提出任何建议。
谢谢!
最佳答案
This email来自 David Miller 回答了这个问题。我使用另一个网络设备驱动程序进行了测试,它运行良好。
测试tx_timeout
的方法就这么简单。如果您不将存储在缓冲区(或队列)中的包发送到硬件本身。因此,这些包将累积直到缓冲区或队列填满。下一个数据包可能不会被存储(和发送),根据 watchdog_timeo
时间抛出超时异常。
关于linux - 如何测试网络内核模块的 tx_timeout 操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26992895/
我对如何测试网络内核模块的 tx_timeout 操作有一些疑问。例如,让我们以《Linux 设备驱动程序》一书第 14 章中的 snull 示例为例。 void snull_tx_timeout (
我是一名优秀的程序员,十分优秀!