- 論壇徽章:
- 0
|
To xiaozhaoz,
我覺得ip_rcv 僅僅是被軟中斷函數(shù)(do_softirq )間接調(diào)用,不被其它調(diào)用。
是net_rx_action 被do_softirq() 調(diào)用,net_rx_action再調(diào)用ip_rcv.
可以找出net_rx_action不被do_softirq調(diào)用的case嗎?
而軟中斷do_softirq()的調(diào)用分為2種情況。
1)被硬中斷調(diào)用(無context, 無自己stack, 一個函數(shù)而已)
2)被kernel thread softirqd調(diào)用,有自己stack. 獨立的context.
大部分情況下1)為真(上次你追問我過次問題,不是僅僅一種情況)。軟中斷忙不過來時才會有2)
do_softirq()在處理過程中可以有新中斷發(fā)生,但do_softirq不會被重入。
我還在看,結論比較齊備后會專門寫個帖子或放到blog.
歡迎討論。
原帖由 xiaozhaoz 于 2006-1-9 12:13 發(fā)表
同意你的說法。
to guotie:
ip_rcv,netfilter 不一定都是在軟中斷中進行:
我上面的描述中已經(jīng)說了:
當軟中斷持續(xù)被觸發(fā)時,為了保持系統(tǒng)實時行,會將后續(xù)的報文處理放到softirqd任務中進行,這時一個內(nèi)核 ... |
|