# [Kernel] A quoi sert IOMMU ? (Résolu)

## Zoboulo

Bonjour,

J'ai une carte graphique en PCI-E, un AMD64 et j'utilise le noyau 2.6.20. Je ne peux pas enlever le support AGP du noyau sans enlever l'option IOMMU.

A quoi sert IOMMU à part pour utiliser l'AGP ? J'ai trouvé plusieurs informations contradictoires. D'après ce que je comprend de la doc du noyau, c'est necessaire pour le dma. 

 *Quote:*   

> IOMMU support IOMMU
> 
> Support for full DMA access of devices with 32bit memory access only
> 
> on systems with more than 3GB. This is usually needed for USB,
> ...

 

Mais suspend2 ne marche pas quand l'AGP du noyau est activé, et ça m'embete un peu de garder un driver que j'utilise pas ... Donc qu'est-ce qui se passe si je désactive IOMMU ?

EDIT : Merci pour vos informations, c'est donc résolu.Last edited by Zoboulo on Fri May 18, 2007 3:14 pm; edited 1 time in total

----------

## geekounet

C'est pas forcement utile d'enlever l'agpgart. Même si t'as pas d'AGP, les drivers DRI utilisent l'API d'agpgart. Moi par exemple, j'ai une i915GM en PCI-Express, mais je peux pas compiler les drivers dri sans avoir l'agpgart dans le kernel.

Et tu es sur que c'est l'agpgart qui te plante ton suspend2 ? Chez moi il a fallu que je désactive tous les workarounds VBE, X tout ça pour que ça marche (donc en fait, avoir un suspend tout propre  :Smile:  ).

----------

## Zoboulo

J'utilise le driver nvidia proprio, donc pas de driver DRI du noyau. Et surtout dans /proc/driver/nvidia, pas de dossier agp. Donc ça veut dire que l'agpgart n'est pas utilisé ? Et dans mes logs de démarrage pas la moindre référence à IOMMU.

Sinon pour le suspend2, je sais pas si c'est d'avoir activé l'agpgart du noyau qui le fait planter, mais même si c'est pas ça j'aime pas activer des options dont je me sert pas ou dont je vois pas l'utilité, question de principe ...

----------

## kwenspc

Les driver nvidia proprios sont blacklistés pour le software suspend. Donc ça ne fonctionnera pas de toute manière. (agpgart ou pas)

----------

## Temet

Tu passes à la maison kwenspc et je te montre mon beau portable qui se Suspend à merveille avec les drivers nvidia proprio  :Wink: 

----------

## kwenspc

 *Temet wrote:*   

> Tu passes à la maison kwenspc et je te montre mon beau portable qui se Suspend à merveille avec les drivers nvidia proprio 

 

L'info est outdated dans ce cas.

----------

## Temet

Bah en fait, je l'ai juste viré du fichier blacklist ... et ça a marché ... va comprendre Charles ^^

EDIT : et ça fait au moins 6 mois qu'il hiberne comme un grand (sauf si j'ai Beryl ... là, adieu l'hibernation... donc le choix a été TRES facile -> adieu Beryl ^^)

----------

## Zoboulo

Moi aussi ça fonctionne en utilisant --force ou en supprimant nvidia du fichier blacklisted-modules. Mais j'aimerai quand même savoir à quoi sert IOMMU et si je dois activer agpgart dans le noyau en étant en PCI-E, si quelqu'un a une idée ?

----------

## Scullder

Tu peux désactiver l'agp et l'iommu en passant des paramètres de boot au noyau.

J'y connais trop rien, mais je crois que l'iommu doit aider à gérer les larges plages de mémoire et le mappage de plage mémoires pour les entrées sorties, au cas où tu utilises toutes les adresses pour la mémoire physique.   :Embarassed:  Mais là je suis pas sûr de ce que je raconte.

Essaie de le désactiver tu verras bien ce qui se passera   :Laughing: 

----------

## xaviermiller

que dit le help dans le kernel ?

----------

## Mickael

Voilà : 

 *Quote:*   

> 'option « Enable IOMMU debugging » permet d'activer des tests sur l'utilisation des ressources DMA par les pilotes de périphérique sur les architectures x86_64 même lorsque la machine dispose de moins de 4 Go de mémoire. Cela permet de diagnostiquer les problèmes d'accès direct à la mémoire des périphériques 32 bits, et de déboguer les pilotes qui supposent que l'espace d'adressage est limité à 32 bits seulement. La réponse recommandée est 'N'.
> 
> L'option « IOMMU leak tracing » permet de vérifier que les ressources DMA allouées par les pilotes de périphérique sont bien relâchées. Cela permet de déboguer les pilotes qui n'utilisent pas correctement les fonctions de gestion des accès direct à la mémoire. La réponse recommandée est 'N'. 

 

ici

----------

## _droop_

Il y a une bonne explication sur le but de l'IOMMU sur la version anglaise de wikipedia.

----------

## Scullder

 *_droop_ wrote:*   

> Il y a une bonne explication sur le but de l'IOMMU sur la version anglaise de wikipedia.

 

Merci   :Wink: 

----------

