A message for Linux.com registered users: We are in the process of making changes to the Linux forums. Starting Monday, 8/13/18 at 6:00 PM PT, you will be unable to access the forums. They will re-launch as soon as possible on Wednesday, 8/15/18 with new features and improved functionality. Thank you for your patience and stay tuned for the new improved forums.
About the IOMMU implementation
I have a question related to the IOMMU driver implementation in linux kernel. Is the IOMMU driver started before any drivers that might use DMA transfers, as it has to map all DMA buffers in its page tables? Or it can be started at any moment but in this case, the mappings must be stored somewhere?