IOMMUグループが少なすぎます。分割されますか?

IOMMUグループが少なすぎます。分割されますか?

AMD RyZEN 5 2400G、Gigabyte B450M D3SH、16GB RAMを購入しました。 AMD Radeon HD 6XXXの古いGPUの一部が通り過ぎているようです。しかし、IOMMUのグループ化は私に不愉快な驚きで近づいてきました。

GPUを最初(16/16)または3番目(16/8)PCIeスロットに配置し、どちらの場合もiommuグループ0に含まれていることを発見しました。ただし、このiommuグループの他のメンバーはVMに渡すことはできず、ホストシステムから除外することはできません。 iommuグループは4つ(0 - 3)しかありませんが、チュートリアルと他のPCでは12以上のグループを見ており、一部のPCIeスロットは単一のグループ内で非常に隔離されています。質問:知っている人はいますか:

  • 追加のハードウェアを購入する必要がありますか?
  • より多くのiommuグループ(分割)を得るためのカーネルオプションはありますか?
  • uEFIの代わりにレガシーBIOSを使用する必要がありますか?

SVMを有効にし、IOMMUを有効にします。オペレーティングシステム:Debian Linux testitng、カーネル5.10、カーネルcmdオプションiommu=on amd_iommu=on

iommu ゼログループ:

01:00.0 USB       [0c03]: [AMD] 400 Series Chipset USB 3.1 XHCI Controller [1022:43d5] (rev 01)
01:00.1 SATA      [0106]: [AMD] 400 Series Chipset SATA Controller [1022:43c8] (rev 01)
01:00.2 PCIbridge [0604]: [AMD] 400 Series Chipset PCIe Bridge [1022:43c6] (rev 01)
02:00.0 PCIbridge [0604]: [AMD] 400 Series Chipset PCIe Port [1022:43c7] (rev 01)
04:00.0 Ethernet  [0200]: Realtek Co. Ltd. RTL8111/8168/8411 PCIe Gigabit Eth [10ec:8168] (rev 0c)
05:00.0 VGA       [0300]: [AMD/ATI] Turks PRO [Radeon HD 6570/7570/8550] [1002:6759]
05:00.1 Audio dev [0403]: [AMD/ATI] Turks HDMI Audio [Radeon HD 6500/6600/6700M Series] [1002:aa90]
06:00.0 NVMe      [0108]: Intel NVMe Optane Memory [8086:2522]

グループ1

...
08:00.0 VGA       [0300]: [AMD/ATI] Raven Ridge [Radeon Vega (Mobile) Series] [1002:15dd] (rev c6)
08:00.1 Audio dev [0403]: [AMD/ATI] Raven/Raven2/Fenghuang HDMI/DP Audio Controller [1002:15de]
...

ご覧のとおり、APU(CPUチップに統合されたGPU)はグループ1に属しています。

答え1

まあ、これは非常に複雑な質問のようです。これは本当に謎です。まず、安定版よりも危険なDebianテスト(Bullseye)をインストールしたため、オペレーティングシステムを疑いました。だからいくつかのカーネルパッチを検索しました。はい、パッチは存在しますが、セキュリティの脆弱性のため使用はお勧めできません。その後、チップセットとマザーボードIOMMUオプションの詳細仕様を検索しました。この情報は明らかに顧客や潜在的な買い手にとって重要ではありません。

切迫した数日を過ごした後、uEFI BIOS設定を段階的に再起動しました。最後に、仮想化に関する設定がさまざまな(サブ)メニュー項目に分散していることに気づきました。だからあなたは確認する必要があります:

MIT\Advanced Freq. Settings\Advanced CPU Settings\SVM Mode = Enabled !
Chipset\IOMMU = Enabled !
Peripherals\AMD CBS\PCIe ARI Support = Disable !

最後の項目であるPCIe ARIのサポートは、IOMMUグループの分離に非常に重要です。このBIOSオプションの詳細な説明が見つかりませんでした。ただし、正しく設定した後、12個のIOMMUグループがあり、PCIeスロット1のGPUは単一のグループ9(GPUと関連オーディオ)にあります。

私が自分で書いた答えであっても、この投稿が誰かに役立つことを願っています。

2021-03-16 編集:最近ARI(Lamaに)から説明を受けました。 PCIの以前のアドレス指定では、アドレス数と下位アドレスが5ビットで、下位アドレスが3ビットであると仮定して、アドレスと下位アドレスが使用されました。したがって、32の異なるPCIデバイスのみを使用できますが、各デバイスは8つのサブデバイス(GPUやオーディオなど)を保持できます。 ARIは、5番目と3番目のビットアドレスを下位アドレスのない8ビットアドレスに集約するため、256個の異なるPCIデバイスを持つことができます。ただし、これによりグループ化が大幅に変更されます。一部の情報源は、uEFI BIOSのデフォルト設定がしばらく前にARIを無効にするように変更されたと主張しています。

答え2

最初の答えは非常に複雑です!

簡単な答えは次のとおりです。アクセス制御サービス(ACS)機能を備えたPCIeデバイスは、ACSなしでIOMMUグループを所有し、アップストリームデバイスに依存します。

ACS機能はプロバイダによって異なります(例:RyZEN CPUを含むチップセットなし)。

ただし、一部のカーネルバージョンではこれを変更するため、「pve unraid iommuグループパッチ」を検索してみることができます。

最後に「PCIe ARIサポート」への回答ありがとうございます。役に立ちました。ただし、BIOSを変更する必要はなく、カーネルパラメータを追加するだけですpci=noari

関連情報