标签:ar sp bs 代码 as 时间 linux nbsp br
1. linux报文接收的上下半段处理从本质上是因为系统的快速中断不能长时间滞留, 以避免影响后续外部事件的处理。 2. 因此将报文的接收分为硬件中断产生的上半部分和由上半部分软件中断触发的下半部分。 上半部分负责接收报文和将其分配给处理它的内核线程, 下半部分由内核线程具体处理。 3. 目前linux内核在该部分代码较多主要来源于两方面,NAPI和内核抢占. 4. 从linux2.6开始追加了内核抢占,与以往不同点在于以前只能由系统线程抢占用户线程, 现在内核之间也能相互抢占。这样的收益主要在两方面: <1>.实时性 <2>.多核操作系统的效率提升. 5. NAPI是因为出现了能自己能缓存一定报文的设备,对于这种设备的上半段报文可以留在设备中 而将设备分配内核线程接手,在下半段从设备中取出报文。以往的非NAPI的设备因为没有缓存所以 每次收到报文都要分配给处理线程。因此NAPI能减少上下半段交互的软中断频率. linux-3.6 面码
标签:ar sp bs 代码 as 时间 linux nbsp br
原文地址:http://my.oschina.net/u/572632/blog/356326