Haruskah saya menonaktifkan perangkat keras IOMMU saat boot dengan iommu = soft?

2

Sistem saya akan menolak untuk mem-boot ketika saya telah mengaktifkan IOMMU perangkat keras dan sebuah disk dimasukkan ke dalam drive CD. Kernel hanya akan mengulang pesan kesalahan dimulai denganAMD-Vi: Event logged [IO_PAGE_FAULT device=...]

Satu-satunya solusi, tampaknya, adalah tidak menggunakan drive optik sama sekali atau melakukan boot dengan parameter kernel iommu=soft.

Sayangnya, saya belum bisa mengetahuinya, apa sebenarnya parameter ini. Ada dokumentasi di kernel.org, yang mencakup semua opsi IOMMU, tetapi tidak benar-benar menjelaskan perubahan fungsionalitas: https://www.kernel.org/doc/Documentation/x86/x86_64/boot-options.txt

Cara saya memahaminya, iommu = soft memotong IOMMU perangkat keras atau menonaktifkannya dan menggunakan implementasi perangkat lunak. Apakah itu benar? Haruskah saya menonaktifkan IOMMU perangkat keras di BIOS atau tetap mengaktifkannya? Apakah ada opsi lain dalam kasus ini, mungkin?

Prototipe700
sumber
iommu = lunak: Gunakan penyangga bouncing perangkat lunak (SWIOTLB) (default untuk mesin Intel). Ini dapat digunakan untuk mencegah penggunaan IOMMU perangkat keras yang tersedia. Sumber
Wiffzack
Hai Wiffzack, saya membaca ini di dokumentasi terkait, tapi saya masih belum sepenuhnya memahaminya. Apakah mode ini sepenuhnya diterapkan pada sisi perangkat lunak? Apakah perangkat keras IOMMU dilewati sepenuhnya olehnya atau apakah masih memenuhi beberapa tujuan dalam fungsinya? Haruskah saya menonaktifkan atau mengaktifkannya di BIOS saat menggunakan mode ini? Saya belum bisa menemukan jawaban untuk pertanyaan-pertanyaan ini (menurut saya agak penting).
Prototype700
(Peringatan Konten informasi rendah!) SWIOTLB atau iommu = soft tampaknya sepenuhnya diimplementasikan oleh perangkat lunak (kecuali beberapa Masalah dengan Nvidia). SWIOTLB boros dalam operasi CPU dan memori, tetapi merupakan satu-satunya cara beberapa adaptor dapat mengakses semua memori pada sistem tanpa IOMMU. Seharusnya tidak perlu menonaktifkan apa pun di bios kurasa. [Sumber] ( pdfs.semanticscholar.org/60f1/… )
Wiffzack

Jawaban:

-1

Di sini saya menemukan penjelasan yang lebih jelas tetapi sederhana: https://wiki.gentoo.org/wiki/IOMMU_SWIOTLB Seperti yang diceritakan dalam artikel: SWIOTLB mem-bypass IOMMU dan memungkinkan antarmuka manajemen memori yang jauh lebih dapat dikonfigurasi. Tanpa masuk ke kompleksitas yang mendalam tentang bagaimana ini bekerja, tabel halaman di-cache dalam Lookaside Buffer mengurangi kebutuhan untuk secara konstan mengakses RAM fisik untuk memetakan memori. Teknologi ini juga disebut sebagai bouncing buffer karena alamat fisik dari peta memori disimpan dalam ruang virtual ini dan IO terpental antara IO fisik dan memori Fisik oleh buffer lookaside virtual ini.

Ini memungkinkan pemetaan memori dilakukan dengan cepat dan memiliki ruang memori fisik yang tersedia untuk digunakan jauh lebih cepat daripada jika harus dibuat secara fisik dalam RAM dan disajikan ke sistem jika dapat digunakan.

Semoga ini bermanfaat

Francesco
sumber