请教网卡中的中断问题

发布于 2022-09-22 13:21:25 字数 193 浏览 11 评论 0

大家好,我最近在研究网卡驱动,看了很多文章都说,网卡在接收到报文后会产生中断,从而调用中断处理函数,于是我在中断处理函数中加入printk打印日志,发现当我把网线拔掉之后,也就是根本没有报文接收到的情况下,中断处理函数仍然会被不断的调用。请问这是什么在调用它呢?是什么在不停中断呢?
PS.我研究的是e1000的网卡,驱动比较新,其中的中断处理函数为e1000_intr()

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

失去的东西太少 2022-09-29 13:21:25

我觉得是这样的,虽然拔掉了网线,但是网卡还是存在的,且接通了电源,所以属于正常工作状态的。
中断的发生可能基于一个原因:就是上层仍可能会发送数据包出去(没有网线就只是把数据包丢到网口),这样发送结束仍旧会产生中断。

我建议你看一下e1000手册,了解清楚中断发生的条件,这个是解决疑惑的关键。等你把结果告知出来。

心如狂蝶 2022-09-29 13:21:25

原帖由 dreamice 于 2008-11-3 15:07 发表
我觉得是这样的,虽然拔掉了网线,但是网卡还是存在的,且接通了电源,所以属于正常工作状态的。
中断的发生可能基于一个原因:就是上层仍可能会发送数据包出去(没有网线就只是把数据包丢到网口),这样发送结 ...

谢谢版主的回答,你说的这个原因我也想到过,就是不清楚发送数据会调用中断处理函数吗?
PS.我的网卡工作在NAPI模式下

祁梦 2022-09-29 13:21:25

应该有一个发包结束的中断,就是说包成功发送出去后,会有一个中断,告知已发送成功。我觉得应该是这歌原因。

披肩女神 2022-09-29 13:21:25

原帖由 dreamice 于 2008-11-3 15:38 发表
应该有一个发包结束的中断,就是说包成功发送出去后,会有一个中断,告知已发送成功。我觉得应该是这歌原因。

哦,如果是这样的话也是有可能的,因为我对网卡发送没有研究过,所以不清楚,我不知道发送也可能引发中断,呵呵。

绾颜 2022-09-29 13:21:25

原帖由 yangfangood 于 2008-11-3 15:57 发表

哦,如果是这样的话也是有可能的,因为我对网卡发送没有研究过,所以不清楚,我不知道发送也可能引发中断,呵呵。

应该是这个问题。
通常,发送网络数据包的时候,如果此时网卡正在发送数据,那么只要把数据包发送到发送队列就是了;
如果网卡此时并没有发送数据,则需要把数据包投递到网卡,触发执行包的发送;包发送完了,肯定需要通知内核,这就是发送结束中断吧。

天涯沦落人 2022-09-29 13:21:25

原帖由 dreamice 于 2008-11-3 17:03 发表

应该是这个问题。
通常,发送网络数据包的时候,如果此时网卡正在发送数据,那么只要把数据包发送到发送队列就是了;
如果网卡此时并没有发送数据,则需要把数据包投递到网卡,触发执行包的发送;包发送 ...

恩,谢谢啦

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文