本文共 400 字,大约阅读时间需要 1 分钟。
IPQ806X网络子系统(NETWORK SUB SYSTEM,简称NSS)NAPI入口函数是:
int nss_core_handle_napi(struct napi_struct* napi,int budget) 其中,入参budget是每次消耗的预算,即一次最多处理几个报文。 在下面的循环中,会判断这个值是否已减到了0,非零时继续。 基本流程是: 1、napi->dev中记录有NSS的中断上下文信息,包含中断号。首先根据这个中断信息获取中断发生的原因码,一个32位整型值。 2、有两重循环,用代码描述是: do{ while(中断原因码非0,预算非零) { 处理DMA中的数据,上报到网络协议栈,计算本次处理数 减少预算 如果本次处理数小于权重值,清除原因码中相应已处理过的优先级位,避免淹死在某一个优先级中队列中 } 重新读取中断,更新原因码 }while(中断原因码非0,预算非零)转载地址:http://paypi.baihongyu.com/