免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4226 | 回复: 8
打印 上一主题 下一主题

NAPI也用process_backlog? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-04-19 20:07 |只看该作者 |倒序浏览
本帖最后由 cs_student 于 2010-04-19 20:10 编辑

今天我在跟踪e1000驱动的NAPI流程时,无意中发现在系统启动的过程中,虽然采用NAPI方式,但还是会使用process_backlog进行软中断的处理,并且这个过程很短,只出现了一瞬间。不理解是为什么!
    我在关键流程的函数里都加入了调试信息,在系统启动时,刚开始显示的net_rx_action后的函数都是e1000_clean(也就是NAPI的poll函数),这个是正确的,可是,在后面的一个很短的时间,屏幕打印出现在在process_backlog函数中,这个是非NAPI的poll函数啊,为什么在NAPI模式下也会调用呢?这个只是在启动过程中一闪而现,之后就没再有了。而且,在进行这个软中断处理之前,并没有出发硬中断,而是直接进入的__netif_rx_schedule函数,然后调用的软中断处理函数net_rx_action和poll函数process_backlog。
    截图如下,请高手给小弟解释下,谢谢!

    正确的NAPI流程,先触发硬中断,然后进行软中断的处理,poll函数为e1000_clean

      在正常的NAPI流程中突然出现的process_backlog。请注意,这里没有先触发硬中断,而直接进行了软中断处理。

论坛徽章:
0
2 [报告]
发表于 2010-04-19 21:55 |只看该作者
回复 1# cs_student

一种更高层面的抽像,普通中断被抽像成NAPI的一种而已……和谐的统一。

论坛徽章:
0
3 [报告]
发表于 2010-04-19 22:20 |只看该作者
回复 2# 独孤九贱


    没有明白九贱兄的意思,如果是抽象成NAPI的话,应该是即使用process_backlog的时候也使用NAPI的整体机制,这个我能理解。不过我现在面对的问题,是在使用NAPI的时候,出现了process_backlog函数,是该用NAPI的地方,却用了非NAPI的机制,这个我就不理解了,而且只有这一瞬间,并且没有硬中断的触发。请九贱兄再解释一下,谢谢!

论坛徽章:
0
4 [报告]
发表于 2010-04-20 14:57 |只看该作者
看不懂。。。。

论坛徽章:
0
5 [报告]
发表于 2010-04-20 18:00 |只看该作者
回复 1# cs_student


   
有 些 通过NAPI交给 IP的 skb也 会 被 netif_rx(skb)重新交回给 rx_softirq吧, 比 如 tunnel之类 的 .

论坛徽章:
0
6 [报告]
发表于 2010-04-20 18:14 |只看该作者
回复 5# Arthur_


    但是我跟踪的过程中,发现如果走NAPI流程的话,在__netif_rx_schedule()中能得到net_dev,能打印出名字,如eth0。但是如果通过__netif_rx_schedule()调用了process_backlog的话,就没有任何dev的名字了,那这个process_backlog到底在做些什么呢?

论坛徽章:
0
7 [报告]
发表于 2010-08-24 23:56 |只看该作者
是这样的,兄弟。NAPI驱动存在两种方式,其实大同小异,比如8139C就不适用网络层提供给的process——backlog,而e1000一类的卡就会使用Pb这种网络层poll方法并且向上提交数据。:wink:

论坛徽章:
0
8 [报告]
发表于 2010-08-25 00:02 |只看该作者
你可以自己查看下backlog的源码看一下如何调用的

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
9 [报告]
发表于 2010-08-25 09:54 |只看该作者
九贱兄说的很经典。LZ也可以自己看一下源代码,就了解实际情况了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP