Назад | Перейти на главную страницу

Разделение группы IOMMU для сквозной передачи PCIe

Я пытаюсь передать свою видеокарту на виртуальную машину с помощью kvm и libvirt. Я получаю сообщение об ошибке, когда пытаюсь передать карту без привязки карты Ethernet, которая, похоже, находится в той же группе IOMMU, к драйверу vfio-pci.

Я хотел бы использовать этот порт Ethernet на хосте, поэтому мне интересно, могу ли я разделить группу IOMMU. Ссылка на эти вещи кажется это сообщение в блоге который упоминает внизу, что

Более новые ядра, чем использованные в этом примере, разделят эту группу IOMMU, поскольку была добавлена ​​поддержка для демонстрации возможностей изоляции этого набора микросхем, даже если он не поддерживает ACS PCIe напрямую.

Но я использую ядро ​​4.10, и это сообщение в блоге от 2014 года, поэтому мне интересно, были ли какие-то новые разработки в этой области.

Мой основной вопрос: могу ли я узнать, что группа IOMMU может быть разделена, и если да, то как я могу ее разделить?

Мне не удалось найти какой-либо собственный метод разделения группы IOMMU: если он разделяется, он будет разделен при загрузке

Однако есть патч, который отменяет размещение IOMMU

эта тема приведет вас к этот патч который успешно сочетается с ядром 4.8, которое по умолчанию поставляется с Ubuntu 16.10.

После применения этого патча и сборки нового ядра мои группы IOMMU были разделены, и сквозная передача работает так, как я хочу. Обратите внимание, что теоретически возможна утечка DMA через устройства, но я никогда не слышал об этом, и у меня это работает безупречно.