vérifier IOMMU support sur linux
J'aimerais vérifier sur une machine Linux si le PCI passthrough est pris en charge. Après un peu de recherche sur google, j'ai trouvé que je devrais plutôt de vérifier si IOMMU est pris en charge, et je l'ai fait en exécutant:
dmesg | grep IOMMU
Si elle prend en charge IOMMU (et pas IOMMUv2), je voudrais obtenir:
IOMMU
[ 0.000000] DMAR: IOMMU enabled
[ 0.049734] DMAR-IR: IOAPIC id 8 under DRHD base 0xfbffc000 IOMMU 0
[ 0.049735] DMAR-IR: IOAPIC id 9 under DRHD base 0xfbffc000 IOMMU 0
[ 1.286567] AMD IOMMUv2 driver by Joerg Roedel <[email protected]>
[ 1.286568] AMD IOMMUv2 functionality not available on this system
...où DMAR: IOMMU enabled
est ce que je suis à la recherche d'.
Maintenant, si la machine est en marche pour les jours, sans redémarrage, que le premier message [ 0.000000] DMAR: IOMMU enabled
peut apparaît pas dans le journal, avec la commande précédente.
Est-il un moyen de vérifier la IOMMU soutien lorsque ce message disparaît à partir du journal?
Noyau dmesg est enregistré dans un fichier,
Je vais voter pour fermer cette question hors-sujet, car il devrait aller unix.stackexchange.com
Mieux que la vérification de la journalisation du noyau est à l'aide de la commande: virt-accueil-valider. Je suis d'accord que cela appartient à unix.stackexchange.com mais cette question est encore le premier succès lors de la recherche sur google pour "linux vérifier iommu support".
Merci! Je ne connaissais pas cette commande. Dans son 1.2.20 version, il ne m'en dit pas beaucoup, mais je viens de vérifier avec la version 2.2.0 et c'est beaucoup plus utile:
/var/log
: kern.journal et/ou des messages. Vérifiez aussi /sys/class/iommu répertoireJe vais voter pour fermer cette question hors-sujet, car il devrait aller unix.stackexchange.com
Mieux que la vérification de la journalisation du noyau est à l'aide de la commande: virt-accueil-valider. Je suis d'accord que cela appartient à unix.stackexchange.com mais cette question est encore le premier succès lors de la recherche sur google pour "linux vérifier iommu support".
Merci! Je ne connaissais pas cette commande. Dans son 1.2.20 version, il ne m'en dit pas beaucoup, mais je viens de vérifier avec la version 2.2.0 et c'est beaucoup plus utile:
QEMU: Checking for device assignment IOMMU support : PASS QEMU: Checking if IOMMU is enabled by kernel : WARN (IOMMU appears to be disabled in kernel. Add intel_iommu=on to kernel cmdline arguments)
OriginalL'auteur Ricky Robinson | 2017-05-31
Vous devez vous connecter pour publier un commentaire.
Depuis 2014 activé iommu sont enregistrés dans /sys (sysfs) système de fichier spécial de la classe
iommu
(documenté à ABI/test/sysfs-classe-iommu):https://patchwork.kernel.org/patch/4345491/ "[2/3] iommu/intel: Faire usage de l'IOMMU sysfs support" - 12 juin, 2014
Le code est
iommu_device_create
(http://elixir.free-electrons.com/linux/v4.5/ident/iommu_device_create, autour de 4,5) ouiommu_device_sysfs_add
(http://elixir.free-electrons.com/linux/v4.11/ident/iommu_device_sysfs_add) en plus les noyaux récents.Enregistrement est effectué uniquement pour les permis IOMMU. DMAR:
AMD IOMMU:
Intel:
Avec 4.11 le noyau linux version
iommu_device_sysfs_add
est référencé dans de nombreux pilotes IOMMU, donc la vérification /sys/class/iommu est mieux (plus universel) de façon à détecter par programmation activée IOMMU que l'analysedmesg
de la sortie ou de la recherche dans/var/log/kern.log
ou/var/log/messages
pour le conducteur spécifiques permettent de messages:/sys/devices/virtual/iommu/dmar0/devices/
? Je ne comprends pas pourquoi vous incluez plusieurs extraits de code dans le reste de votre réponse.Vérifiez aussi votre PCI dossier dans sysfs, il peut a iommu ou iommu_group liens vers le spécifique IOMMU. (Vérifier le DMAR n'est pas trop portable, il ne fonctionnera pas sur les BRAS). Des extraits de Code pour montrer que iommu fichiers/répertoires dans sysfs sera enregistré que lorsque IOMMU est activé.
Ok, merci. J'ai remarqué que sur les machines où le PCI passthrough n'est pas pris en charge, le dossier
/sys/class/iommu
existe mais il est vide, alors que sur les machines où il est disponible, il contient un dossierdmar0
, qui lui-même contientdevices intel-iommu power subsystem uevent
. Afin de vérifier si/sys/class/iommu
est vide ou non devrait déjà donner une réponse. Comment dois-je procéder à la deuxième case danssysfs
? Je ne suis pas sûr de comprendre où et quoi vérifier... Merci!!!Ricky, oui, le
/sys/class/iommu
dossier est presque toujours là (quand sysfs est monté). Vous devriez faire ls (readdir) de ses sous-dossiers:ls -l /sys/class/iommu/*
, ou de l'événementls -l /sys/class/iommu/*/devices
à trouver des appareils qui ont iommu activé.OriginalL'auteur osgx