gpt4 book ai didi

linux - 如何测试网络内核模块的 tx_timeout 操作?

转载 作者:太空狗 更新时间:2023-10-29 11:18:54 27 4
gpt4 key购买 nike

我对如何测试网络内核模块的 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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com