AMD-VI IOTLB_INV_TIMEOUT
AER: Corrected error received
RX580用にすべてのPCIeスロットを予約すると、このようなエラーやカーネルパニックによってコンピュータが起動するのを防ぎます。 Linuxパラメータを追加しiommu=soft
てpci=noaer
起動の問題を解決します。 Lubuntu と Ubuntu 20.04 では、カーネル drm に次のログが表示されます。
00:58:47 lubu kernel: [drm] PCIE GART of 256M enabled (table at 0x000000F400000000).
00:58:47 lubu kernel: [drm] UVD and UVD ENC initialized successfully.
00:58:47 lubu kernel: [drm] VCE initialized successfully.
00:58:47 lubu kernel: [drm] Cannot find any crtc or sizes
また、Ubuntu 20.04では、gdm3は私のJournalctlに次のような多くのメッセージを送信します。
14:02:36 ub20 /usr/lib/gdm3/gdm-x-session[1334]: (II) AMDGPU(0): EDID vendor "GSM", prod id 19311
14:02:36 ub20 /usr/lib/gdm3/gdm-x-session[1334]: (II) AMDGPU(0): DDCModeFromDetailedTiming: 720x480 Warning: We only handle separate sync.
14:02:36 ub20 /usr/lib/gdm3/gdm-x-session[1334]: (II) AMDGPU(0): Using EDID range info for horizontal sync
14:02:36 ub20 /usr/lib/gdm3/gdm-x-session[1334]: (II) AMDGPU(0): Using EDID range info for vertical refresh
14:02:36 ub20 /usr/lib/gdm3/gdm-x-session[1334]: (II) AMDGPU(0): Printing DDC gathered Modelines:
ただし、GPU を広く使用すると、両方のディストリビューションでランダムにシステムがハングする現象が発生します。主にJournalctlをチェックすると、次のエラーログが表示されます。
00:59:06 lubu kernel: [drm:amdgpu_job_timedout [amdgpu]] *ERROR* ring sdma0 timeout, signaled seq=175, emitted seq=177
00:59:06 lubu kernel: [drm:amdgpu_job_timedout [amdgpu]] *ERROR* Process information: process pid 0 thread pid 0
00:59:06 lubu kernel: amdgpu 0000:07:00.0: amdgpu: GPU reset begin!
30 00:59:06 lubu kernel: amdgpu: [powerplay]
last message was failed ret is 65535
または
kernel: [drm:amdgpu_dm_atomic_commit_tail [amdgpu]] *ERROR* Waiting for fences timed out!
kernel: [drm:amdgpu_job_timedout [amdgpu]] *ERROR* ring gfx timeout, signaled seq=4226, emitted seq=4228
一部のLinuxユーザーはiommu=pt
これらの問題を解決したと報告しています。https://bbs.archlinux.org/viewtopic.php?id=250297。
私は数ヶ月間この問題のために混乱していましたが、ここで何が起こっているのかを学び、理解したいのです。だから私はiIOMMUチューニングに関するLinuxカーネルのドキュメントを読んだ。https://www.kernel.org/doc/html/latest/admin-guide/kernel-parameters.html可能なパラメータとその意味https://www.kernel.org/doc/Documentation/x86/x86_64/boot-options.txt。
私はIOMMUの専門家ではないので、GART、再マッピング解除、バウンスバッファリング(SWIOTLB)、amdgpuとLinuxシステム自体の間の相互作用などの用語を理解することは困難です。読み取り可能:iommu=soft
Linuxがソフトウェアバウンスバッファリング(SWIOTLB)を使用していることを示します。 SWIOTLBは、デフォルトでnoforce
オペレーティングシステムが自分のPCから起動するのを防ぎます。noforce
これは、ハードウェアIOMMUが強制的に使用されないことを意味します。
amd_iommu
その後、ハードウェアの設定に重要な別のパラメータがあります。このオプションには fullflush、off、force_isolation の 3 つの値があります。残念ながら、このオプションのデフォルト値は何であるかわかりません。
私のクイック質問:パラメータの最良の組み合わせは何ですか?iommu
私のamd_iommu
ハードウェアがRyzen5からRX580を最大限に活用する方法は何ですか?
私の追加質問:
amd_iommu
サプリメントですかiommu
?それともamd_iommu
AMD Ryzen CPUまたはAMD GPUハードウェアを意味しますか?もしあれば、Ryzenチップセットを言うintel_iommu
ようです。amd_iommu
iommu
ハードウェアIOMMUを強制的に使用しないと、どのような影響がありますかamd_iommu = off
?
より詳細な説明とソースコードへの直接リンクを読んでくださって本当にありがとうございます。
ありがとうございます!