发布时间:2019-02-05 10:43:24
Linux数据包NAPI处理流程1. 概念NAPI:linux新的网卡数据包处理API,采用新的数据包处理流程。round-robin:轮询调度调度算法。硬中断:由外设产生,主要是用来通知通过操作系统外设发生变化。比如当网卡收到数据包的时候,就会产生一个硬中断。软中断:为了满足实时性需要,中断处理应该是越快越好,当中断发生时,硬.........【阅读全文】
发布时间:2019-02-04 23:26:36
软中断是可以被硬中断打断的,有一点需要注意:假设当前有3个softirq处于pending状态,然后__do_softirq正在处理第1个软中断,这个时候硬中断发生了,硬中断里面trigger了1个新的更高优先级的softirq,当中断返回的时候,检查in_interrupt不为0,所以不会重新调用do_softirq,而是返回中断前的__do_softirq中。软中断的注.........【阅读全文】
发布时间:2019-02-04 23:15:40
数据包在网卡驱动的中断处理中enqueue后,由process_backlog做后续的处理。process_backlog是由软中断处理函数net_rx_action调用的。process_backlog调用netif_receive_skb(已经到协议栈的入口了)对在queue中的报文进行处理(有个时间的配额).......【阅读全文】