《深入理解Linux網路技術內幕》閱讀筆記(六)

2021-07-05 13:09:04 字數 660 閱讀 5932

pci的優點之一是,其支援尋找irq和每個裝置所需的其他資源的探測方式相當優雅。模組可以在載入期間接收一些輸入引數,以告知該如何配置其所負責的所有裝置。但是,有些時候,特別是pci這類匯流排,讓驅動程式自行檢查系統上的裝置,然後為其負責的那些裝置做配置會比較簡單一點。必要時,可以退回到手動配置。

探測方式有兩種:

靜態:

給定乙個裝置pci id,核心就能根據id_table向量查詢出正確的pci驅動程式,也就是pci_driver例項。

動態:

系統管理員可以新增id的能力,而不是指id本身可自行變動。由於動態id是在執行中的系統上配置的,只有當核心被編譯為支援熱拔插時才能使用。

pci電源管理事件

1.suspend主要停止裝置出口佇列,使得該裝置無法再傳輸。

2.resume重啟出口裝置,使得該裝置得以再次傳輸。

(只是針對出口佇列的原因,是nic開啟網路喚醒功能時(wake-on-lan,wol),允許nic接收一種特殊型別的幀時喚醒處於待命模式的系統)。

《深入理解Linux網路技術內幕》閱讀筆記(五)

通過中斷,nic能夠告知其驅動程式幾種不同的事情,包括 1.接收一幀。2.傳輸失敗。3.dma傳輸已成功完成。給定乙個幀傳輸,當幀上載至nic的記憶體準備在此媒介上傳輸時,驅動程式就會將持有該幀的緩衝區釋放掉。使用同步傳輸時 無dma 當該幀已上傳至nic,驅動程式就會立刻知道。但使用dma時,也就...

《深入理解Linux網路技術內幕》閱讀筆記(九)

當特定事件發生時,裝置驅動程式會代表核心指示裝置產生硬體中斷。處理函式會把該幀排入佇列某處,然後通知核心。該技術是低流量負載下的最佳選擇。遺憾的是,在高流量負載下就無法良好運作 每接收乙個幀就強制產生中斷,很快就會讓cpu為處理中斷事件浪費所有的時間。負責接收幀的 分成兩部分,首先,驅動程式把該幀拷...

《深入理解Linux網路技術內幕》閱讀筆記(十二)

這些分層通常稱為網路協議棧,因為通訊會往下傳播通過各個分層,直到實際上經過線路或無線頻道傳輸,然後再返回來。報頭也會以lifo的方式新增和刪除掉。每一層都有很多種協議可以用。在最底層的接 換資料,而所用的協議是預先決定的 協議的驅動程式被關聯至該介面 接收幀的時候,會傳送幀副本給網路嗅探器 如tcp...