在引導核心選項中使用 iommu=force 意味著什麼?
我必須遵循 linux 作業系統的強化程序,在此程序中它告訴我們核心選項必須具有
iommu=force
.它有什麼作用 ?如果不指定有關 iommu 的任何內容,可能有什麼區別?它與我設置的 pci 直通兼容
intel_iommu=on
嗎?
據我了解,這些選項是相輔相成的,具體來說,
iommu
管理該技術在系統中的使用,該force
值確保它無論如何都會被使用;並且intel_iommu
是技術本身,一種 IOMMU 規範 (Intel VT-d),就像 AMD (AMD-Vi) 一樣amd_iommu
。只需分析以下配置選項:
一般
iommu
(輸入/輸出記憶體管理單元)選項:
off
不要初始化和使用任何類型的 IOMMU。
noforce
不要在不需要時強制使用硬體 IOMMU。(預設)。
force
強制使用硬體 IOMMU,即使它實際上並不需要(例如,因為 < 3 GB 記憶體)。
soft
使用軟體反彈緩衝 (SWIOTLB)(英特爾機器的預設設置)。這可用於防止使用可用的硬體 IOMMU。
現在,英特爾 IOMMU:
intel_iommu
$$ DMAR $$英特爾 IOMMU 驅動程序 (DMAR) 選項
DMAR:直接記憶體訪問重映射
on
啟用英特爾 IOMMU 驅動程序。
intel_iommu
(off
,igfx_off
, , …)有更多選項forcedac
,但它們與這個問題無關。我不是這個主題的專家,也許我遺漏了一些東西,所以這裡有一些來源:
iommu
和都是intel_iommu
Lxgrub
參數,主要針對SR-IOV直通(pt)模式。
iommu=force
強制使用硬體 IOMMU(“輸入輸出記憶體管理單元”),即使它實際上並不需要(例如,因為 < 3 GB 記憶體)。這如何強化您的執行時?表現良好的驅動程序在向需要執行 DMA 的設備發送命令之前呼叫 pci_map_() 呼叫。一旦 DMA 完成並且不再需要映射,設備將執行 pci_unmap_() 呼叫以取消映射該區域。英特爾 IOMMU 驅動程序為每個域分配一個虛擬地址。每個 PCIE 設備都被迫擁有自己的域(因此受到保護)。
intel_iommu=on
只需在核心中啟用 SR-IOV。
請注意,要獲得最佳性能,請在使用 SR-IOV 時將
iommu=pt
(傳遞)添加到文件中。grub
在直通模式下,適配器不需要對記憶體使用 DMA 轉換,從而提高了性能。iommu=pt
主要在需要管理程序性能時需要。查看這個和那個以獲取背景資訊。在此範例中,您的
grub
文件可能如下所示:kernel /vmlinuz-Ub15.10x86_64-5.5.15-42-generic root=/dev/sda1 console=tty0 console=ttyS0,115200n8 rhgb intel_iommu=on iommu=pt
高溫高壓