Bonjour, ma carte mère, une MSI 970 Gaming (MS-7693) pour processeurs AMD FX pose des problèmes vis à vis des ports USB3. Cela semble lié au chipset utilisé : un VIA VL806. Le problème rencontré fait que je n'ai tout simplement pas l'usage de mes ports USB3 (sous linux, mais tout fonctionne à merveille sous Windows 10...). Enfin bref, à force de parcourir le Net, j'ai dans un premier temps trouvé une solution simple et efficace : rajouter IOMMU=SOFT dans le GRUB. Et récemment, j'ai vu que l'option IOMMU=PT IOMMU=1 fonctionne également. Ma question est donc de savoir quelle solution est à privilégier, tant du point de vue de la sécurité (surtout) que des performances. J'avoue ne pas bien comprendre la fonction de IOMMU... Cela semble lié à l'adressage mémoire, et l'option PT (PassThrough) m'inquiète un peu. Je fais donc appel aux plus érudits pour m'aider à faire mon choix entre ces deux options par ailleurs équivalentes pour l'utilisateur lambda que je suis. Merci !
Manjaro Gnome 16.06.1, AMD FX8320E, 16 GB DDR3 1600, NVIDIA GTX960, 1 HD pour WIN10, 1 HD pour Manjaro
gedeon a écrit :Enfin bref, à force de parcourir le Net, j'ai dans un premier temps trouvé une solution simple et efficace : rajouter IOMMU=SOFT dans le GRUB.
Là, je sens que tu vas intéresser du monde ! Tu pourrais donner les liens que tu as retenu ? Sinon, pour ta question, on est dans du pur code kernel . La réponse est peut être dans ce très court résumé des options du noyau
Noyau récent MANJARO x86_64 bits: 64 Xfce 4.16
ASUSTeK model: PRIME B350M-A v: Rev X.0x
6-Core: AMD Ryzen 5 2600X
AMD Baffin [Radeon RX 460/560D / Pro
driver: amdgpu v: kernel
Display: x11 server: X.Org driver: amdgpu,ati unloaded: modesetting
OpenGL: renderer: Radeon RX 560 Series
Arch en Dual. Aucun lien publicitaire ne saurait être toléré dans la signature!
Euh, j'ai pas conservé les liens, désolé. Mais une recherche "IOMMU AMD-Vi USB" renvoie déjà pas mal de pages. Quant à la doc mentionnée : c'est du lourd !!! Mais merci pour l'info.
Manjaro Gnome 16.06.1, AMD FX8320E, 16 GB DDR3 1600, NVIDIA GTX960, 1 HD pour WIN10, 1 HD pour Manjaro
alors la différence entre IOMMU=SOFT et IOMMU=PT IOMMU=1 en soft toutes les adresses re-mappés passe par IOMMU ( avec de grande chance aussi pour la virtualisation ) avec PT , 1 cela signifie PassThru ( passe à travers ...)
cela concerne donc tout accès par DMA ( accès direct adresse CPU , périphérique ) , c'est plus rapide MAIS cela ne fonctionne pas sous la virtualisation, il faut donc un Mapping IOMMU pour assurer ce point
autre aspect non négligeable , c'est plus compliqué a attaquer un périphérique dont les adresses sont accessible par IOMMU , car il y a toujours en association de protection mémoire à la base , chose qui n'existe pas en DMA
cela un impact direct sur la video , car c'est essentiellement du mapping mémoire vers la vidéo que tu envoie pour l'affichage sauf si ( sans IOMMU) , en simplifiant je fais un accès immédiat j'ai : @video-frame1 , frame1 +offset , etc --> on envoie le contenu vers le port video
en cas de passage par IOMMU ( ou même par PassThru ) @video-frame-1 --> adresse virtuelle IOMMU --> envoi vers le port video @video-frame-1 + offset , adresse virtuelle IOMMU --> envoi vers le port video tu vois assez rapidement qu'il te faut a minima 1 a 2 instruction supplémentaire ( et parfois plus s'il faut la chercher ) pour afficher une frame sur ton port video
en gros , pour les CPU sans IOMMU correct , @adresse memoire = @adressse rélle du peripherique que le CPU peut gerer immédiatement par DMA
avec IOMMU ( cas de base de tout processeur X86 ) le CPU utilise une adresse Virtuelle --> calcul systematique de l'adresse réelle
le role de IOMMU est dans les 2 sens pour adresses réels vers virtuels ou adresses virtuels vers réel