在典型的基于PCIe的系統(tǒng)中,枚舉PCIe總線,并在系統(tǒng)初始化期間將資源分配給每個PCIe端點設(shè)備。由于枚舉和資源分配算法的局限性,PCIe拓撲一旦初始化,便已修復,這意味著不得將新的端點設(shè)備或交換機連接到系統(tǒng)。
IDT PCIe熱插拔驅(qū)動程序是一個可加載的Linux模塊,采用IDT專有的枚舉,資源分配和設(shè)備檢測算法,允許PCIe端點設(shè)備和交換機在運行時連接到系統(tǒng)或與系統(tǒng)斷開連接,而不會影響系統(tǒng)的運行狀態(tài)。系統(tǒng)中的其他PCIe設(shè)備。以圖1為參考,如果雙GigE控制器與系統(tǒng)斷開連接并隨后重新連接至其他交換機上的端口,則光纖通道控制器和SATA / SAS控制器的操作狀態(tài)將保持不變。這與PCIe熱插拔的Windows Vista實施不同,后者必須禁用,重新枚舉和重新分配資源給共享同一根端口的所有設(shè)備,然后新連接的設(shè)備才能運行。通過寫入位于/ sysfs目錄下的文件,可以簡單地以任意方式或更舒適地將設(shè)備連接至系統(tǒng)或從系統(tǒng)斷開連接。將0寫入/sysfs/bus/pci/slots/0000:bb:dd.f/power文件(其中bb指定總線號,dd指定設(shè)備號,f指定下游端口的功能號)將禁用指定下游端口,同時將1寫入同一文件將啟用下游端口。禁用下游端口時,將從Linux內(nèi)核中刪除所有連接到該端口的設(shè)備,并且將調(diào)用PCI驅(qū)動程序remove()函數(shù)來執(zhí)行所需的清除操作。同樣,啟用下游端口后,將發(fā)現(xiàn)與其連接的所有設(shè)備,添加到Linux內(nèi)核中的PCI驅(qū)動程序probe()函數(shù)將被調(diào)用以執(zhí)行設(shè)備初始化。下游端口也可以由第三方內(nèi)核模式驅(qū)動程序通過使用標題為“啟用和禁用下游端口”中描述的熱插拔驅(qū)動程序API來啟用或禁用。
下面的圖2描述了可以與運行IDT PCIe熱插拔驅(qū)動程序的系統(tǒng)連接或斷開連接的設(shè)備類型的示例。
實現(xiàn)這種熱插拔功能的關(guān)鍵是能夠為系統(tǒng)中的每個下游端口分配其他未使用的總線號和內(nèi)存資源。當新設(shè)備連接到系統(tǒng)時,這些額外資源將用于使該設(shè)備進入運行狀態(tài),而不必損害共享同一根端口的其他設(shè)備的運行狀態(tài)。
系統(tǒng)互連注意事項
圖3中所示的IDT系統(tǒng)互連拓撲由一個基于x86的根聯(lián)合處理器(RP)組成,該根復雜處理器通過IDT系統(tǒng)互連PCIe交換機連接到一個或多個基于智能x86的端點處理器(EP)。每個EP都使用IDT域內(nèi)交換機將它們連接到系統(tǒng)互連PCIe交換機的下游端口。這種拓撲結(jié)構(gòu)與IDT系統(tǒng)互連軟件結(jié)合使用,可以在系統(tǒng)中任何兩個對等方之間進行高速數(shù)據(jù)傳輸。
當使用這種類型的拓撲將新的EP連接到系統(tǒng)或從系統(tǒng)斷開連接時,熱插拔驅(qū)動程序會將EP視為與任何普通端點設(shè)備相同。但是,當RP連接到系統(tǒng)或從系統(tǒng)斷開時,處理RP的方式有所不同。
通常,當PCIe交換機的上游端口斷開時,如圖4所示,該交換機將對其所有下游端口進行熱復位。此功能在系統(tǒng)互連拓撲中是不可取的,因為當RP與系統(tǒng)斷開連接時,它將阻止EP相互通信。熱插拔驅(qū)動程序通過檢測IDT PCIe系統(tǒng)互連交換機并禁用其上游端口斷開連接時生成熱重置的能力,從而解決了此問題。通過將linkDownHotReset模塊參數(shù)設(shè)置為非零值,可以在熱插拔驅(qū)動程序中禁用此功能。
熱插拔驅(qū)動程序還具有被動資源分配算法。該算法主要與IDT系統(tǒng)互連拓撲一起使用,該算法允許RP以最小的系統(tǒng)中斷將其連接到操作系統(tǒng)。通常,當端點設(shè)備連接到根聯(lián)合體時,是根聯(lián)合體將內(nèi)存資源分配給該設(shè)備。對于被動資源分配,是由根聯(lián)合體將內(nèi)存資源分配給設(shè)備。在被動資源分配的情況下,應(yīng)該使用哪些內(nèi)存資源的“根聯(lián)合體”。默認情況下,熱交換驅(qū)動程序中會啟用此功能,但可以通過設(shè)置passiveAllocationDisable模塊參數(shù)來禁用此功能。
編輯:hfy
-
交換機
+關(guān)注
關(guān)注
22文章
2747瀏覽量
101924 -
PCIe
+關(guān)注
關(guān)注
16文章
1342瀏覽量
85146 -
PCIE總線
+關(guān)注
關(guān)注
0文章
58瀏覽量
13769
發(fā)布評論請先 登錄
熱插拔算力集群
如何選擇可靠的熱插拔?連接器熱插拔防護等級詳解
Linux環(huán)境再升級:PLIN驅(qū)動程序正式發(fā)布

pcie設(shè)備驅(qū)動程序安裝步驟
熱插拔是什么意思
LSP 2.10 DaVinci Linux驅(qū)動程序

熱插拔電源是什么意思
面向熱插拔應(yīng)用的MOSFET

評論