Chinaunix首页 | 论坛 | 博客
  • 博客访问: 972373
  • 博文数量: 21
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 215
  • 用 户 组: 普通用户
  • 注册时间: 2018-11-27 17:55
文章分类
文章存档

2019年(21)

我的朋友

分类: C/C++

2019-02-04 23:15:40

数据包在网卡驱动的中断处理中enqueue后,
由process_backlog做后续的处理。process_backlog是由软中断处理函数net_rx_action调用的。
每次软中断net_rx_action最多允许处理netdev_budget(300)个数据包,最长运行时间为2jiffies(2ms).超过这个限制重新再触发一次软中断。
net_rx_action调用的是n->poll(n, weight),这个poll实际是process_backlog,这个process_backlog是在net_dev_init函数中赋值给queue->backlog.poll的。
process_backlog调用netif_receive_skb(已经到协议栈的入口了)对在queue中的报文进行处理(有个时间的配额).
阅读(1845) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~