- 论坛徽章:
- 0
|
To xiaozhaoz,
我觉得ip_rcv 仅仅是被软中断函数(do_softirq )间接调用,不被其它调用。
是net_rx_action 被do_softirq() 调用,net_rx_action再调用ip_rcv.
可以找出net_rx_action不被do_softirq调用的case吗?
而软中断do_softirq()的调用分为2种情况。
1)被硬中断调用(无context, 无自己stack, 一个函数而已)
2)被kernel thread softirqd调用,有自己stack. 独立的context.
大部分情况下1)为真(上次你追问我过次问题,不是仅仅一种情况)。软中断忙不过来时才会有2)
do_softirq()在处理过程中可以有新中断发生,但do_softirq不会被重入。
我还在看,结论比较齐备后会专门写个帖子或放到blog.
欢迎讨论。
原帖由 xiaozhaoz 于 2006-1-9 12:13 发表
同意你的说法。
to guotie:
ip_rcv,netfilter 不一定都是在软中断中进行:
我上面的描述中已经说了:
当软中断持续被触发时,为了保持系统实时行,会将后续的报文处理放到softirqd任务中进行,这时一个内核 ... |
|